这个东西就像是SVN一样,团队操作。
这篇教程需要懂得SVN原理操作,才可以跟我继续学下去。
分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。
如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样,既安全,又不影响别人工作。
熟统来说:1个人拥有一个分支,而另外一个人也拥有一个分支,两个人工作流程不一样。
开始实战 首先,我们创建dev分支,然后切换到dev分支:
git checkout -b devA
-b是创建并且切换到devA分支上
开始工作
并且提交 和 切换到temp另外一个分支上去
这时候,你再打开 ’老司机的~~~' .txt文件,发现是这样子的。
此时应该此处比较好玩一点了。 因为你工作的分支是两码回事,他工作他的,我工作我的,互不相干!
合并分支
在上面我们说了,每个人工作他自己的事情,但是始终重要以一个文件来作为最终文件,而这个’最终文件’ 指的就是 合并分支 (主分支Master) , 最上面那张图可以作为代表作(我自己编写的~)
我们继续往下敲代码,你会发现,你依然存留在temp分支上(并且那个.txt文件我已经改过了),这下两个文件都有着不同的内容,来看如下:
这时候需要把两个分支合并到我们的Master分支
git merge dev
Oh MY GOD! 重点来了(虽说讲了这么多),这种原因就是冲突原因(Git无法执行“快速合并”)
赶紧解决方法:
看到最底下的no changes.....了么? 这就是git告诉我们要自己(A技术,B技术,C技术三个人自己去协商好,再合并修改再上传上去)
这种原因的存在一般是:合并别人的东西过来,肯定冲突阿(因为跟你本地不一样),这时候就得需要去把你的队友拉过来,一起合并,然后再提交你的东西,如下图:
以上你如果和猪队友结合之后,再重新指定分支到当前分支
git checkout master
git merge temp
最终文件: