2012/08/06

git merge命令之--no-ff

今天介绍一个git merge命令的参数,--no-ff。git help merge里对该参数的解释为:
With --no-ff Generate a merge commit even if the merge resolved as a fast-forward.
意思是即使此次merge可以fast-forward,也要创建一个新的commit。

接下来通过两个简单的实验来演示这个参数的效果。实验模拟日常开发中一个最简单的流程,从master上创建test分支,进行开发,将test分支merge回master分支,最后删除test分支。

首先看看不使用--no-ff的情况。
开始操作前通过SmartGit查看log:








现在执行命令
git checkout master
git merge test
此时log如下:








最后 git branch -d test 删除test分支,








可以看到,此时丝毫看不到之前test分支开发的影子。如果想保存之前分支开发的影子我们可在merge时使用--no-ff参数,
git merge --no-ff test
效果如图









即使删除test分支后依然可以看到之前分支的记录:

没有评论:

发表评论