使用git大集合

  • git命令(终端输入)
    • MrBin:~ zhangbin$ cd /Users/zhangbin/Desktop/今天的任务/ZBBDJ
    • MrBin:ZBBDJ zhangbin$ git init
    • MrBin:ZBBDJ zhangbin$ git add . --all
    • MrBin:ZBBDJ zhangbin$ git commit -m "哈哈"
    • 然后打开xcode修改某处内容,再选择Source Control-->Commit.
    • 在弹框界面的左侧-->选择对号对应的行-->然后就可以看到修改的内容-->点击右下角的Commit 2 Files
    • 另外如果提示下面的内容,按照下图操作
41-01.png
  • 对上述命令的解释:
    • git init执行后,项目文件中就会出现.git

常见错误

  • 执行git add .时候出现如下错误
On branch master
Your branch is up-to-date with 'origin/master'.
nothing to commit, working directory clean
  • 错误原因: 本地版本库(.git)没有增加新内容,就是说从服务器上下载下来的文件夹,你并没有在这个文件夹添加任何内容
  • 解决办法:向从服务器上下载下来的文件夹里面添加文件即可。添加的文件不能为空文件,否则还提示这个错误
  • 注意:如果本地版本库中之前有文件,你现在把这个文件删除了,执行git add .不会出现上述错误,因为这个和上面有本质区别

必须知道+精华

  • 如果需要用git add命令,一定用git add .命令,不要用git add main.m ,用后面的命令可能会出错,用前面的命令一定不会出错

  • 共享版本库 = 远程仓库 = 服务器

  • tag = 打标签 = 备份

  • 右键删除本地版本库(.git)中的文件,如果这个个文件之前已经在本地版本库的分支的管理之下,一定要记得执行 git add . 以及git commit -m "删除了某个文件",如果不执行,分支中就不会知道你删除了这个文件,所以你得发命令告诉分支,:"这个文件被删除了啊,你记录一下"

  • 命令行的git add . 就是Xcode中文件后面的 “M” 标记或”“A”标记

  • 命令行的 git commit -m "XXXXX" 就是XCode中Source control里面的Commit

  • 因为命令行中你没有执行git add . ,就无法成功执行git commit -m "XXXXX" 就是XCode中的Commit
    所以Xcode中的没有M或者A,就无法执行Commit

  • 命令行的git push 就是Xcode中Source control里面的push
    因为命令行执行git push,就会把在本地版本库分支中的文件上传到github网站上
    同样xcode中执行push,就会把在本地版本库分支中的文件上传到github网站上

  • Xcode中的文件后面的“?标记,表明该文件没有在本地版本库(.git)的管理之下,需要修改该文件使之变为"M"标记或者“A”标记
    等价于向本地版本库(.git)里面复制了一个新的文件,但是并没有执行 git add .操作

  • 重点:之前已有的xcode项目拖到本地版本库必须执行git add .
    在本地版本库新建的xcode不需要执行git add .
    不要问为什么,就是这么规定的,因为底层在创建xcode项目,默认已经执行了git add .

  • 仅仅add,如果没有commit,即使push成功,服务器也收不到你add的内容,必须add->commit->push,这是固定顺序,少了哪个,服务器都收不到add的内容【已验证】

  • 放在了本地版本库的暂缓区的文件,如果没有commit,是不会添加到本地版本库的分支中,那就更不可能添加的共享版本库中(远程仓库)了。因为底层是这个层级关系,不可跳级:
    本地版本库的暂缓区的文件->本地版本库的分支->远程仓库

  • bare的值为 false表示为本地版本库,为true表示为共享版本库

  • xcode7.0之后不能识别文件夹里面的内容

  • 通过命令行的方式,将服务器的内容下载到本地。发现需要xcode,之前我改了xcode的文件名,所以提示需要我安装xcode才能到本地。说明,服务器的文件内容本很就是通过在xcode中修改,再push到共享版本库,缓存区的东西不能直接push到共享版本库

  • 分支在本地,本地版本库,共享版本库都有,所以都得删除掉(必须依次删除掉,注意)

  • A文件和M文件 都是放在了暂缓区 ,而缓存区里的东西,先添加到commit到本地版本库


命令行的git push,就是Xcode中Source control里面的push

  • 命令行的git push


    25-18.gif
  • Xcode中Source control里面的push
25-19.gif

利用git查看这个项目比上一个项目多了具体什么内容

  • 就是Source中的History
25-19.png
25-20.png
25-21.gif

git命令大解析

    1. 切换到自己文件夹中用来作为仓库
    
    cd /Users/zhangbin/Desktop/study 
    
    2. 在study文件夹中初始化一个git仓库
    (可以看到.git这个隐藏文件里面有很多文件)
    (git所管理的范围是:和.git文件同级的目录+  .git文件的子目录)
    
    git init
    
    3.给当前的git仓库创建一个本地的用户名和邮箱
    (查看本地的用户名和邮箱:选择.git隐藏文件打开,找到config右键打开)
    
    git config user.name "zb"
    git config user.email "zb@163.com"
    
    4.配置全局的用户和邮箱
     (查看全局的用户名和邮箱:Mac上方->前往->个人->.gitconfig,然后右键打开)
    (目的:优先使用本地的用户名和邮箱,如果本地没有用户名和邮箱,就使用用这个全局的用户名和邮箱)
    (本地的用户名和邮箱、全局的用户名和邮箱可以不一样,看自己的需求了)
    
    git config --global user.name "zb"
    git config --global user.email "zb@163.com"
    
    5.项目经理初始化项目(例如main.m文件)
    
    5.1 创建main.m文件
    
    touch main.m
    
    // 5.2和5.3步骤不可互换位置,如果先执行了5.3,系统提示你必须先执行5.2,把文件add到暂缓区中
    5.2 将main.m添加到本地版本库(.git文件)的暂缓区中(main.m的文件状态由红色变为绿色)
     (暂缓区就是stage)
     
    git add main.m 
    或者git add .  把不在暂缓区中的所有文件添加到暂缓区
    
    5.3 将暂缓区的所有内容(main.m)提交到本地版本库中HEAD指针指向的分支
     (分支就是master)
    (本地版本库就是 .git文件.本地版本库包括暂缓区+分支,也就是.git文件包括暂缓区+分支)
   
   
    git commit -m "初始化项目"
    
    6. 查看git所管理的范围中的文件状态
    (文件为红色:该文件仅仅存在和.git同级的目录中,不在.git目录里面的暂缓区, )
    (绿色为绿色:该文件不仅存在和和.git同级的目录中,也在在.git目录里面的暂缓区中,但是该文件没有提交到本地代码仓库)
    (如果该文件已经在暂缓区了,这时候你修改了该文件,查看文件状态,该文件又会变成红色.所以还得依次5.2和5.3步骤)
    
    git status
    
    7. 给git的命令起别名(格式 alias.xxxxxxx)
    (例如给status命令起别名)
    (例如给commit命令其别名)
    (查看给本地的git起别名的存储路径:选择.git隐藏文件打开,找到config右键打开)
    (查看给全局的git起别名的存储路径:Mac上方->前往->个人->.gitconfig,然后右键打开)
    
    //以后既可以通过git status查看状态,也可以通过git zhuangtai查看状态
    git config alias.zhuangtai "status"
    
    //以后既可以通过git commit -m " "提交文件,也通过git tijiao来提交文件
    git config alias.tijiao "commit -m"
    
    // 给git的命令起一个全局的别名
    git config --global alias.tijiao "status"
    
    8. 删除文件
    (删除文件注意点:删除main.m文件,这个main.m文件之前必须执行了5.3操作,
    也就是main.m必须提交到了本地版本库的分支中,否则删除不了main.m文件)
    (你动脑子想一想:你得让main.m在本地版本库.git中啊,不然.git里面根本就没有main.m 你让它删除一个它里面根本就没有的文件,你觉得可能吗)
    (即使删除了,该文件仍然存在本地版本库的分支中,所以必须把删除文件的操作提交到本地版本库分支,这样分支就会把里面的main.m真正的删除了))
    
    git rm main.m
    
    9. 查看版本号(内容包括:用户名+邮箱+提交时间+提交时写的注释+40位的版本号)
    (多人开发时,例如甲乙把本地版本库中的代码分别提交到同一个共享版本库中,如果甲乙的版本号一样
    共享版本库就不知道用哪个了,所以版本号不能一样,因此用了sha1算法生成的40位哈希值作为版本号,保证每次提交的版本号都不重复)
    
    git log
    
    // 可以查看版本回退的所有记录
    git reflog
    
    
    10. 版本回退
    git reset --hard HEAD     :回退到当前版本
    git reset --hard HEAD^    :回退到上一个版本
    git reset --hard HEAD^^   :回退到上上个版本
    git reset --hard HEAD~100 :会退到前100个版本
    git reset --hard HEAD 版本号(至少前五位):回退到指定的一个版本
    
    11.如果想将回退的操作提交到服务器,在10的基础上,再执行如下命令
    
    git push --force
    这样之前的版本在服务器中就不存在了
    参考链接:https://segmentfault.com/q/1010000000115900
    

利用版本回退来实现删除GitHub上之前的commit

  • git reset --hard HEAD命令
25-22.gif
  • git reset --hard commit_id命令
25-23.gif

git的工作原理(呕心沥血)

25-06.png

25-07.png

版本回退,耗费两小时,只为以后一看就懂

25-10.gif

共享版本库(4种方法,选其中一个)

  • 方法1:自己搭建git的服务器,作为共享版本库.
  • 方法2:U盘作为共享版本库.
  • 方法3:自己创建的文件夹作为共享版本库.
  • 方法4:托管到GitHub或者OSChina上.

方法3:自己创建的文件夹作为共享版本库

1. 切换到自己创建的Server文件夹中用来作为共享版本库

cd /Users/zhangbin/Desktop/Server 

2. 初始化了一个空的本地共享版本库(没有.git文件哦)

git init --bare

3. 项目经理将Server上的共享版本库下载到自己的Manager文件夹中

3.1 项目经理先切换到自己的Manager文件夹

cd /Users/zhangbin/Desktop/Manager

3.2 项目经理将Server上的共享版本库下载到自己的Manager文件夹中
(下载到自己的Manager文件夹之后,这个文件夹里面就多一个Server文件夹)
(在多出的Server文件夹里面,有一个.git文件夹.虽然共享版本库没有,但是只要下载了共享版本库,就默认有.git文件。系统底层自己加上的,我们不要深究)
(多出的这个.git就是本地版本库。注意.git只有本地版本库才有)
git clone /Users/zhangbin/Desktop/Server

4. 创建忽略文件.gitignore
(忽略文件一定要放在Server文件夹中哦,即和.git同级的目录)
(.gitignore文件的名字不能用别的,规定)

所以先切换目录

cd /Users/zhangbin/Desktop/Manager/Server

再创建忽略文件

touch .gitignore

4.1.忽略文件的内容去github上搜索
(在github上搜索gitignore,找到github/gitignore项目
   在项目里找到Objective-C.gitignore文件并单击单开该文件,复制里面的内容,然后把复制的内容粘贴到到4创建出来的.gitignore文件中)

4.2. 把.gitignore这个忽略文件添加到本地版本库(.git文件)的暂缓区中
    (最好使用git add . 这样.DS_Store也会被添加的哦啊暂缓区中)
git add .gitignore

4.3 将暂缓区的.gitignore提交到本地版本库中HEAD指针指向的分支中

git commit -m "添加了忽略文件"

5.在Manager的Server文件夹下创建xcode项目
(创建xocode项目,不要勾选.git文件哦,因为Mangager的Server文件夹下已经有.git文件了。所以你想勾选也没法勾选啊)

6.把Xcode项目Commit到本地版本库,push到共享版本库
Xcode-->Source Control-->Commit-->写上注释--勾选左下角的Push和右下角的Commit即可将,XCode项目push到共享版本库。别人下载在共享版本库时就可以看到里面有你刚才push的Xcode了。

7. Staff员工验证Xcode文件是否push到了共享版本库

7.1 创建Staff文件夹

7.2 切换到Staff自己的目录
cd /Users/zhangbin/Desktop/Staff

7.3 下载共享版本库中的文件到Staff文件中

git clone /Users/zhangbin/Desktop/Server

7.4 验证成功,从共享版本库中下载的文件中有Xcode项目


方法3动态截图

25-15.gif

方法3的注意点


注意1: xcode中进行版本回退做法:Source Control--> Discard All Changes

注意2: 经理在xcode项目中只要修改了文件,经理必须Commit到本地版本库,push到共享版本库,这样员工下载项目时候才会看到你修改的文件。

注意3: 在和.git同级的目录中创建了一个xcode项目(因为有.git,所以创建xcode不勾选.git),
       创建出来这个xcode项目的类后面都为A,A就是Add的意思
       就是Xcode项目已经在本地版本库(.git)的暂缓区了
       所以我们要把项目添加到本地版本库的分支中时,只需要Commit即可

25-08.png

xcode的bug

  • 甲利用xcode无法从共享版本库中pull项目到本地,
    • 方法1:在终端执行git reset --hard才可以
    • 方法2:删除掉甲之前的项目,然后在终端执行 git clone 共享版本库的地址
    • 方法3:简单粗暴,卸载重装即可解决[我就是这么解决的]
25-09.png

在方法3的基础上实现版本备份(所以要备份,必须先执行方法3的步骤)

主要轮廓:
1.  1.0版本开发完毕,上传到AppStore,第1.0版本进行备份(打标签)
2.  将标签上传到共享版本库
3.  开始开发2.0版本
4.  发现1.0版本有bug,新建一个文件夹用来修复bug
5.  将服务器所有的内容下载到新建的文件夹中
6.  切换到1.0的标签
7.  创建分支并切换到该分支
8.  将该分支上传到共享版本库
9.  在分支中修复bug
10.  对修复完bug的版本,上传到AppStore,进行备份,并上传到共享版本库
11. 对2.0版本进行合并
12. 删除分支

详细:
1.  1.0版本开发完毕,上传到AppStore,第1.0版本进行备份(打标签)


1.1 在WeChat项目中增加两个NSLog的内容commit并commit到共享版本库,就表示是1.0版本开发完毕,模拟嘛.
    (这个WeChat项目在Manager的Server文件夹下)
    
   1.0版本的内容就是下面两行代码
    NSLog(@"员工A开始开发1.0版本");
    NSLog(@"开发1.0版本已经开发完毕");
    


1.2 通过终端中的命令打标签(在Manager的Server文件夹下打标签)

git tag -a WeChat1.0 -m "这个是微信1.0版本"

1.3 查看标签

git tag (结果为WeChat1.0)

1.4.  将标签上传到共享版本库的origin

git push origin WeChat1.0


2.  开始开发2.0版本

     2.0版本的内容如下
     NSLog(@"员工A开始开发1.0版本");
     NSLog(@"开发1.0版本已经开发完毕");
     NSLog(@"开始开发2.0版本");


3.  2.0版本还没有开发完成(也就没有打标签),这时经理发现1.0版本有bug,
    经理就在自己的文件夹中新建一个文件夹用来修复bug.
    不是之前Manager的Server文件夹下的WeChat哦.之前的WeChat千万不要动它,不要用它来修复bug。

3.1 经理在Manager文件夹下新建的用于修复bug的文件夹为 WeChat1.0FixBug
    
3.2 切换到用于修复bug的WeChat1.0FixBug目文件夹 

cd /Users/zhangbin/Desktop/Manager/WeChat1.0FixBug 

4.  将服务器(共享版本库)中所有的内容下载到新建的文件夹WeChat1.0FixBug中

git clone /Users/zhangbin/Desktop/Server

5. 将目录切换到WeChat1.0FixBug的Server目录中

cd /Users/zhangbin/Desktop/Manager/WeChat1.0FixBug/Server

6. 查看当前WeChat1.0FixBug目录标签

 git tag (结果为WeChat1.0,所以克隆到WeChat1.0FixBug中的项目是1.0版的WeChat)
 

7. 打开WeChat1.0FixBug中的WeChat项目,里面有"开始开发2.0版本",但是这个内容并不是1.0版的内容
  因为1.0版本打标签之后,才有"开始开发2.0版本"这个内容的哦

8.  切换到1.0的标签

    git checkout WeChat1.0
    
9. 再次查看WeChat项目项目,发现"开始开发2.0版本"不见了
    因为1.0版本的WeChat根本就没有"开始开发2.0版本"这个内容.


10.  创建分支并切换到该分支
    
    git checkout -b WeChat1.1FixBug
    
10.1你怎么知道确实切换到了WeChat1.1FixBug了呢?
    答:打开WeChat1.1FixBug文件中的项目->Source Control->下拉列表第二行有 Server WeChat1.1FixBug
        因为之前的是Server Master分支,现在是 Server WeChat1.1FixBug,说明确实切换到了Server WeChat1.1FixBug分支

11.  将该分支上传到共享版本库(可做可不做)
    因为步骤12不仅会将修复的bug上传到共享版本库,而且也会将bug所处的分支Server WeChat1.1FixBug上传到共享版本库
    (底层的规定:只要执行push操作,分支和修改的内容都会被上传到共享版本库)

    git push orign WeChat1.1FixBug


12.  在分支中修复bug
12.1在WeChat1.1FixBug文件的WeCHat项目中输入如下内容
    下面的内容被存在了暂缓区中(因为该项目被修改了,在xcode中只要修改了文件,就等价于Add)
    -(void)FixBug{
    
    NSLog(@"修复了1.0bug的1.1版本");
    }

12.2 将暂缓区中的文件commit到本地版本库,并push到共享版本库

    Soucce Control ->Commit并Push

13.  对修复完bug的版本,上传到AppStore,进行备份,并上传到共享版本库
    (标签和标签的名称不能一样,分支和分支的名称也不能一样,分支和标签的名称更不能一样,要保证唯一性)
    
    13.1 对修复完bug的版本进行备份(打标签)
    git tag -a WeChat1.1 -m "这是修复了1.0bug的1.0版本"
    
    13.2 将标签上传到共享版本库
    
    git push origin WeChat1.1
    

14. 对之前 正在开发2.0版本时出现bug的WeChat进行合并(2.0版本的内容就是步骤2中的内容.2.0之前并没有打标签哦,更没有上传app哦。)
    
    14.1 打开之前的2.0版本
    
    Manager->Server->WeChat->WeChat.xcodeproj
    
    14.2 合并到Manager的本地版本库的分支中,不是暂缓区中哦,已经从暂缓区中添加到分支中了
    
    Source Control->Pull->在下拉列表中选择origin/WeChat1.1FixBug->Pull
    
    14.3 push到共享版本库的master分支中
    
    Source Control-> Push ->在下拉列表中选择origin/master分支
    

15. 查看标签
    
git tag(结果:  WeChat1.0   WeChat1.1 )

拓展:删除标签(不要删除哦)  git tag -d WeChat1.1

16. 查看所有分支

git branch -r 

(结果:
       origin/HEAD -> origin/master
       origin/WeChat1.1FixBug
       origin/master                )
       
17. 查看当前在哪一个分支

git branch 
(结果
     * WeChat1.1FixBug
       master          
                    )


    
18. 删除分支(必先切换到master分支)
 
 18.1 切换到master分支
 
  git checkout master
  (可以发现WeChat1.1FixBug文件的WeCHat的Xcode项目由之前的 Server WeChat1.1FixBug分支 切换到了Server Master分支)
  
  18.2 删除本地的分支
  
  git branch -d WeChat1.1FixBug
  
  18.3 删除本地版本库的分支
  
  git branch -r -d origin/WeChat1.1FixBug 
    
  18.4 删除共享版本库的分支
  
  git push origin --delete WeChat1.1FixBug
  
  


方法4:托管到GitHub上(HTTPS认证)

1.1.在GitHub上创建一个空壳项目,用于存储本地的项目,本地项目只有上传到这个空客项目中,这个空壳项目才有内容哦

https://github.com/new

2. 空壳项目的地址

https://github.com/zb553828497/WeChat

3.复制空壳项目地址界面中HTTPS后面的链接

https://github.com/zb553828497/WeChat.git

4. 将HTTPS后面的链接复制到XCode中

点击Xcode图标->Preferences->Accounts->左下角Add Repository
Address:为HTTPS后面的链接
Type:为Git
Authentication:为User Name and Password
User Name:为GitHub的账户
Password: 为GitHub的密码

5.将空壳项目的地址的内容下载到本地cangku文件夹

点击Xcode->Check Out->下拉并选中至最后一个(Item)WeChat->Next->指定下载到cangku文件夹并Download

6.在cangku/WeChat/ 文件夹下创建Xcode项目(xcode项目一定和.git同级哦)

7. 打开xcode,发现所有的类都变为了A,说明Xcode项目在本地版本库的暂缓区中,所以我们不需要Add操作
    只需要Commit到本地版本库的分支,然后再Push到共享版本库(远程仓库,也就是空壳项目)
    Source->Commit->添加注释、Push to remote、Commit xx Files
8. 在共享版本库(远程仓库,也就是空壳项目)中发现多了TecentWeChat项目,则托管成功



  • 动态截图


    25-16.gif

对方法4的HTTPS认证认证的扩展:

  • 方法4是在之前没有Xcode的项目时,把Xcode托管到GitHub的远程仓库上
  • 如果之前本来就有Xcode项目,如何把Xcode托管到托管到GitHub的远程仓库上呢?
1. 将TecentWeiBo项目放在和.git同级的目录


2. 执行 git add .或者 git add 项目名,使项目添加到本地版本库的暂缓区中。


3. 打开TecentWeiBo项目,发现里面的类全部变为A
    (如果不执行2,打开Animal,所有的类为?,问号说明项目没有添加到本地版本库的暂缓区中) 
     (执行了2,打开Animal,所有的类变为A,A就是Add,说明项目已经添加到本地版本库的暂缓区中)
     
     
4. 在Xcode执行Commit操作,使在本地版本库的暂缓区项目提交到本地版本库的分支中


5. 在xcode执行push操作,将本地版本库的分支中的项目提交到共享版本库(也就是远程仓库)中


6. 打开GitH上的共享版本库(远程仓库),发现增加TecentWeiBo项目

  • 动态截图
25-17.gif

方法4:托管到GitHub上(SSH认证)

1.在GitHub上创建一个空壳项目,用于存储本地的项目,本地项目只有上传到这个空客项目中,这个空壳项目才有内容哦

https://github.com/new

2.空壳项目的地址

https://github.com/zb553828497/xm

3. 在终端中切换到随便一个目录,例如hub

cd /Users/zhangbin/Desktop/Hub

3.在终端生成私钥和公钥

3.1 输入如下代码
ssh-keygen -t rsa -b 4096 -C "邮箱"

3.2 输入文件名作为私钥和公钥的文件名(两个如果,哪个都可以)
    (如果输入了文件名,那么私钥和公钥存在于Hub目录.这里我们输入了文件名哦)
    (如果不输入文件名,直接按Enter键跳过,那么私钥和公钥存在于 /Users/zhangbin/.ssh文件中,私钥id_rsa,公钥id_rsa.pub)
    
    Enter file in which to save the key (/Users/zhangbin/.ssh/id_rsa)

3.3.  输入密码和确认密码(不输入也可以)

Enter passphrase (empty for no passphrase)||Enter same passphrase again:

4. 将生成的公钥添加到github 上

选中github账户的头像->Settings->SSH and CPG keys->NEW SSH key->Title随便写->将公钥添加到Key选项中—>Add SSH key

5. 将步骤2空壳项目中SSH选项后面的链接复制下来

git@github.com:zb553828497/xm.git

6. 将链接放到Xcode中认证

点击Xode图标->Preferences->Accounts->点击左下角+按钮->Add Respository

在Address后面输入复制的链接 https://github.com/zb553828497/xm
Type为Git
Authentication为 SSH Keys
Public Key:在GitHub文件中生成的公钥
Private Key:在GitHub文件中生成的私钥
Passphrase为空
点击Add之后,GitHub服务器中存储的公钥就会和Public Key的公钥对比,如果对比成功,则认证成功
因为选项中用户自己的Public Key一定对应的是自己的Private Key,所以服务器只需要认证两个公钥是否相等即可。
私钥只有用户自己知道,服务器看不了,只能通过比对公钥。

注意点:由于步骤3.2输入了私钥和公钥的文件名,所以四月和公钥存在于Hub目录中.
   但是Public Key和Private Key选项去/Users/zhangbin/.ssh文件中找公钥和私钥.
   因为我们没有将私钥、公钥放在.ssh文件中,所以系统找不到公钥和私钥会弹出如下截图
   我们必须选择Generate来在.ssh文件中生成公钥,否则无法进行下一步.
   然后我们必须得把Private Key改成Hub目录中的真正的私钥,点击Private Key后面的文件夹,来找到Hub中的私钥,此时Public Key也自动换成了真正的公钥

7. 校验证书,将.git仓库下载到本地,下载到哪里都行,这里放到我们创建的Hub文件中就行
    
  选中Xcode中的Source Control->Check Out
  最终会生成空壳项目文件夹(里面有.git和.gitignore和LICENSE)

8. 自己创建一个Xcode项目放到和.git同级的目录下

9.将xcode项目Commit、Push到GitHub上,可以看到Xcode项目添加到了空壳项目中

  • 步骤6截图
25-13.png
  • 动态截图
25-13.gif

对方法4的SSH认证的扩展:

  • 方法4是在之前没有Xcode的项目时,把Xcode托管到GitHub的远程仓库上
  • 如果之前本来就有Xcode项目,如何把Xcode托管到托管到GitHub的远程仓库上呢?
做法:
1. 将Animal项目放在和.git同级的目录
2. 执行 git add .或者 git add 项目名,使项目添加到本地版本库的暂缓区中。
3. 打开Animal项目,发现里面的类全部变为A
    (如果不执行2,打开Animal,所有的类为?,问号说明项目没有添加到本地版本库的暂缓区中) 
     (执行了2,打开Animal,所有的类变为A,A就是Add,说明项目已经添加到本地版本库的暂缓区中)
4. 在Xcode执行Commit操作,使在本地版本库的暂缓区项目提交到本地版本库的分支中
5. 在xcode执行push操作,将本地版本库的分支中的项目提交到共享版本库(也就是远程仓库)中
6. 打开GitH上的共享版本库(远程仓库),发现增加了Animal项目

动态截图

25-14.gif

如何在 GitHub 下载某个程序的特定版本?

25-24.gif

xcode中的回退操作细节

25-26.gif

注意+难点:超级有用的git reset --hard和git revert命令

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343

推荐阅读更多精彩内容