问题描述
如果该标志检测到您的当前是您尝试合并的提交的祖先,则该--no-ff
标志会阻止git merge
执行“快进” 。HEAD
快进是当 git
不构造合并提交时,只是将您的分支指针移动到指向传入的提交。这通常发生在git pull
没有任何本地更改的情况下。
但是,有时您想阻止这种行为发生,通常是因为您想维护特定的分支拓扑(例如,您正在合并一个主题分支,并且您希望确保它在阅读历史记录时看起来像这样)。为了做到这一点,您可以传递--no-
ff
标志并且git merge
将 始终 构建合并而不是快进。
同样,如果您想执行 a git pull
or usegit merge
以显式地快进,并且如果它不能快进,您想退出,那么您可以使用该--ff-
only
标志。这样你就可以经常做一些git pull --ff-only
不假思索的事情,然后如果出错,你可以回去决定是要合并还是变基。
解决方法
使用gitk log
,我无法发现 和 的效果之间的git merge
区别git merge --no-ff
。我如何观察差异(使用 git
命令或某些工具)?