git merge

Git使用时,将两个分支合并要用到git merge命令,如果在master分支拉出一个新的分支,进行了开发,开发结束后要将该分支合并入master,如果要手工操作就是在master分支上执行git merge test这样的命令,test为开发分支名。
但是这时会发现,merge后的master分支和test分支提交记录看上去是一样的,完全看不出曾经有过拉分支的操作,如果要回退本次操作也不容易看到

image.png

有时候希望merge后的提交记录能看到如下图的有分支的操作


image.png

这样当需要撤销test分支的操作时,直接在那个merge提交上找上一个提交即可

原因是git merge操作可以添加参数,默认使用--ff的参数执行merge操作,表示fast-forward模式,在这种模式下如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,会出现第一个图那样的提交记录,导致分支丢失

如果使用 git merge --no-ff test命令,使用--no-ff参数,则可以关闭fast-forward,可以生成第二个图的提交记录

可以在git config中设置默认模式
git config --global merge.ff false
将merge.ff设置为false,即可默认使用--no-ff模式

你可能感兴趣的:(git merge)