Git merge的三种模式
在使用git merge时,可能是以下三种模式中的某一种
1.Fast forward
当待合并的2个branch最近的commit是线性关系时
或者说,某个branch自上次更新后没有commit信息时
git则直接移动指针即可,并没有真正的merge操作,也没有对应的merge commit信息
如下图,合并master和hotfix分支,既是fast-forward模式
2.Merge made by recursive
当要合并的2个branch的最近的commit对应的直接祖先不同时
git就无法通过简单的移动指针来进行合并
只能以2个branch的最新commit和他们的共同祖先进行一次merge
并对应有一个merge commit信息
如下图,合并master和iss53分支:
3.Conflict
当2个branch都修改了同一个文件的同一部分时
这时,就会发生冲突,git的自动合并就会失败
这时,使用git status会看到
test.html: needs merge
需要手工合并冲突后,git add一下,表明冲突修改完了
然后,再git commit即可