假设一个情况,master在第一次commit后branch了一个新的分支develop
ff merge
用于产生分支后,master分支没有commit的情况,ff即fast-foward merge,就像是merge分支沿着develop分支快进
git checkout master
git merge develop
3-way merge
git merrge -- no-ff develop
–no-f表示不用ff merge,作用是把master分支最新commit节点的文件内容和develop分支最新节点内容合并,并产生一个新的commit节点。
此时 如果master节点也已经修改并且commit了,那么此时肯定不可以使用ffmerge ,因为两个分支已经分岔,必须采用3-way merge。
conflict
如果master也修改了内容,同时与develop产生了冲突,那么在执行3-way merge的时候 会提示你在哪个文件产生冲突,需要你用编辑器进去修改冲突部分,<<<<和>>>>之间的部分,可以全部删除,重新编辑自己想要的,然后再重新add commit,合并就完成了。
如果在此时想要放弃合并,可以执行’git merge –abort’。git文档库和文件夹中的文件内容都会恢复到未执行合并前的状态。
git merge
执行git merge 的时候git会自动判断应该采用3-way还是ff