一、新建远程代码库并向代码库里面添加工程
1、克隆代码库到本地
首先,在GitHub上创建一个代码库,为代码库起一个名字,代码库类型设置为公有的(私有代码库需要花钱,7刀一个月),然后点击创建代码库。
拷贝链接,
打开终端,在终端输入:
$ cd Desktop/ //cd <路径>,映射到本地目录
$ git clone https://github.com/DecadentOrMagic/test.git //git clone <地址>,拷贝内容到本地
点击Enter,
当终端如上图所示,说明我们已经把代码库克隆到了本地。
2、更新本地仓库
在test目录中,创建新的工程HelloWorld或者复制现成的HelloWorld工程到test目录,在终端输入:
$ cd /Users/xueyao/Desktop/test // 映射到test文件夹下(cd 然后把test文件夹拖到终端就行了)
$ git add . // git add . 用于添加文件到本地代码库缓存
$ git commit -m"第一次上传代码" // git commit用于提交缓存中的修改
终端如上图所示,说明本地仓库更新完成。
3、更新远程仓库
使用
$ git push // git push 命令用于推送本地代码库到远程服务器代码库
当终端如上图所示,表示远程服务器代码库修改完毕。
当我们刷新一下GitHub界面,我们会发现,GitHub上已经显示了我们的这次更新。
二、使用分支管理代码
1、创建分支
创建分支时,在终端输入
$ git branch testing // 创建分支时,使用git branch<分支名>
$ git branch // 查看分支情况
输入完这两行命令,按Enter后,*号的分支是当前分支,master是git默认创建的分支,testing是我们刚刚创建的分支。
2、切换分支
在终端输入:
$ git checkout testing // git checkout <分支名>,切换分支
当终端如上图所示,说明已经切换到了testing分支。
终端输入:
$ git branch
我们可以发现,分支确实已经切换到了testing。
3、合并分支
我们现在终端输入
$ git checkout master
把分支切回到master,
打开工程HelloWorld,在ViewController.m的viewDidLoad方法里输出Hello World,然后在终端输入
$ git add .
$ git commit -m"第一次修改master分支"
更新本地代码库。
如上图所示,说明master分支的本地代码库已经更新完毕。
终端输入
$ git checkout testing
切换到testing分支,
打开工程HelloWorld,我们会发现工程变成了一个空白工程。
在ViewController.m的viewDidLoad方法的同一个位置输出世界你好。
注意(错误命令):
在终端输入
$ git checkout master
我们发现终端给出一个警告,这是因为我们在修改完testing分支之后,没有更新本地代码库就切换分支了,这是不允许的。要记住,我们每次修改完分支之后,一定要及时更新本地代码库才能切换分支。
所以,正确的命令应该是
$ git add .
$ git commit -m"第一次修改testing分支"
$ git checkout master
我们看到,这样写就可以再次切换到master分支了。
在两个分支的工作结束后,我们就要把testing分支合并到master上,合并分支用到了git merge命令。
在终端输入
$ git merge testing
终端输出如上图所示,这是因为我们两个分支产生了冲突。
再次打开HelloWorld这个工程,<<<<<<< HEAD ... >>>>>>> 表示其中的内容有冲突,此时就需要我们手工解决,究竟想保留哪部分代码,就看你自己的需求了。如果你想把两个分支的代码全部保留,那就把<<<<<<< HEAD / ======= / >>>>>>> testing 这些都去掉,然后再次在终端进行本地代码库更新。终端输入
$ git add .
$ git commit -m"第一次合并分支"
终端输出如上图所示,说明本地代码库已经更新,下一步就可以push到远程仓库了。
在终端输入
$ git push
终端如上图所示,说明我们已经更新了远程仓库。
到GitHub上查看一下,
可以看到,GitHub上已经更行完成。
4.删除分支
当我们在testing分支上的工作结束,我们就可以把这个分支删除了,但是要注意,要删除的分支不能是当前所在的分支。
因为我们现在处在master分支上,我们直接在终端输入
$ git branch -d testing
如上图所示,testing分支已经删除(如果不确定,可以输入 $ git branch 查看一下分支状态)。
如果是这种情况,我们处于testing分支,而且编辑了代码,此时要删除testing分支该怎么操作呢?
首先,我们要在终端输入 $ git add . / $ git commit -m"" 更新本地代码库,然后切换到master分支,而删除的时候,我们如果使用了 $ git branch -d testing 命令,终端会输出信息提醒我们,删除的时候要用
$ git branch -D testing
来进行删除,其中 -D表示强制删除。
三、如何在日常工作中使用GitHub进行管理代码
关于这个问题,请参见 https://segmentfault.com/q/1010000000181403 这个帖子二楼的回复,再结合分支的使用,基本就能解决平时的代码管理需求了。
写到这儿也差不多了,如果文中出现什么错误或遗漏,还请各位不吝赐教,我会第一时间进行更改。