使用gitk log,无法发现两者之间的差异?
如果--no-ff标志git merge检测到你的当前HEAD是你正在尝试合并的提交的祖先,则该标志防止执行“快进” 。快进是,而不是构建一个合并提交,git只是移动你的分支指针指向传入的提交。这通常发生在git pull没有任何本地更改的情况下。
然而,有时候你想防止这种行为发生,通常是因为你想维护一个特定的分支拓扑结构(例如,你正在合并一个主题分支,并且你希望在阅读历史时确保它看起来是这样的)。为了做到这一点,你可以通过--no-ff标志,git merge并将始终构建一个合并,而不是快进。
同样的,如果你想要执行一个git pull或者git merge用来显式快进,并且你希望如果它不能快速前进,那么你就可以使用这个--ff-only标志。通过这种方式,你可以不git pull --ff-only经过考虑就定期做些事情,如果出错,你可以回头决定是否要合并或重组。