参考:《第一行代码——Android》 郭霖 著
通过前两节对Git的简单介绍及学习,相信大家对Git的一些常用命令已经初步掌握了吧?接下来我们就一起学习一下关于Git的一些高级用法。
一、分支的用法
分支的主要作用是在现有代码的基础上开辟一个分叉口,使得代码可以在主干线和分支上同时进行开发,且相互之间不会影响。为什么要建立分支呢?正常情况下,只在主干线上进行开发是完全没有问题的,但是如果涉及到出版本或者代码任务较重,开发周期较长,需要多人合作开发完成时,如果不建立分支的话,工作会让你很头疼的!假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。
现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。
相信通过这个简单的介绍,各位朋友应该也能意识到分支的重要性了,接下来具体学习一下如何在Git中操作分支吧!分支的工作原理如下图所示:
分支的英文名是branch,如果想要查看当前的版本库当中有哪些分支,可以使用git branch 这个命令,结果如下图所示:
从图中可以看到,目前AlarmClock项目中只有一个master分支,即主分支(主干线),接下来我们尝试创建一个分支,命令如下:
git branch dev
这样就创建了一个名为dev的分支,再次输入git branch 命令来检查一下,结果如下图所示:
从图中可以看到,dev分支出现了,仔细观察发现master分支前面有一个*号,说明目前我们的代码还是在master分支上的,如果我们想切换到dev分支上该怎么做呢?很简单,只需使用git checkout dev 命令即可,如下图所示:
大家可以看到,*号已经移到了dev分支前面,说明我们成功将代码切换到dev这个分支上了。
注意:在dev分支上修改并提交代码不会对master分支代码造成影响,反之亦然。所以我们在dev分支上修复了一个bug,在master分支上这个bug依然存在。难道要我们手动一行行复制修改的代码到分支上么?如果修改过多,这样显然不是一种聪明的做法。怎么办呢?别担心,Git为我们提供了merge命令来完成合并操作,如下所示:
git checkout master
git merge dev
通过这样简单的命令,就可以把在dev分支上修改并提交的内容合并到master分支上了。(注意:在合并分支时还有可能出现代码冲突的情况,此时就需要你精心来慢慢找出并解决这些冲突,Git此时也无法帮助你了)。
合并完成后,当我们不再需要dev分支时,可以使用git branch -d dev命令即可将dev分支删除掉,如下图所示:
由图可以看到,当你处于dev分支时,是无法删掉此分支的,你需要先切换到master分支,再删除dev分支,最终用git branch命令查看,发现项目下只有master分支了,dev分支已经被成功删掉。
二、远程仓库
如果我们只是自己开发一个比较简单的小项目,那么使用版本控制工具就并没有发挥出它真正强大的功能。所有版本控制工具最重要的一点就是可以使用它来进行团队合作开发,每个成员电脑上都有一份代码,当团队某个成员在自己的电脑上完成了某个功能,就将代码提交到服务器,其他成员只需要将服务器上的代码同步到本地,就能保证整个团队所有人的代码都相同。这样大家就可以分工合作,各司其职,共同完成一个较为庞大的项目。
那么如何通过Git来进行团队合作开发呢?此时就需要一个远程仓库,然后团队成员可以从这个远程仓库中获取到原始代码,然后各自进行开发,并且以后每次提交代码都同步到远程版本库上就可以了。
远程版本库这部分的内容我给大家推荐一个地址:https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/001374385852170d9c7adf13c30429b9660d0eb689dd43a000,感觉这位大牛写的很好很细致,大家可以参考着学习学习,希望大家能有所收获,加油吧!!!