git实践系列八:合并与冲突
次阅读
关于merge,我们再熟悉不过了。多人协同开发,你发布代码,我也发布代码,最终我们都要发布到同一版本库,那么代码合并就必不可少了。本节我们来模拟一个日常开发中的场景作以说明,Let’s go!
假设我们一直在分支dev开发,此时我们已经写完代码,准备合并到主分支master,以下是具体操作步骤:
一、切换分支到master
1 | git checkout -f master |
二、将dev分支合并到master
1 | git merge dev |
不巧的是,我们改了同一个文件。那么这时候就会产生冲突,我们就需要对冲突文件进行合并。
可以看到,有文件自动合并失败了,这样我们不得不手动去合并了。1
2
3
4
5<<<<<<< HEAD
test in master
=======
test in dev
>>>>>>> dev
<<<<<<<标记冲突开始,后面跟的是当前分支中的内容。
HEAD指向当前分支末梢的提交。
=======之后,>>>>>>>之前是要merge过来的另一条分支上的代码。
>>>>>>>之后的dev是该分支的名字。
对于简单的合并,手工编辑,然后去掉这些标记,最后像往常的提交一样先add再commit即可。
三、查看状态git status -s
status -s 传送门http://git-scm.com/docs/git-status
注意,如果还有没有合并冲突的文件,就无法commit,并且给出提示:
查看状态,合并完之后,我们add刚才修改的文件。
提交并上传到远程库
ok,搞定收工!