作为我们重基化工作流程的一部分,我希望在主分支上使用合并。特别是,我只想在主题分支重新基于最近的主提交时才合并,从而使任何合并成为快进合并。我可以通过使用来实现:
git merge --ff-only
此外,我想记录主题分支与空提交的集成,这就是为什么我想使用 --no-ff 来强制这种行为:
git merge --no-ff
不过,我真正想要的是两者的结合:仅在微不足道时才合并,但无论如何让我记录一下。吉特认为
fatal: You cannot combine --no-ff with --ff-only.
这在某些人看来是不言而喻的。
git merge --edit --no-ff topicbranch
也没有达到我想要的行为。那么,如果有问题的主题分支重新基于最新的主提交,我如何与 --no-ff 选项合并?
更新:似乎查尔斯·贝利的回答可以解决问题。如果你想把它变成一个 git 别名,你可以在这里发出这个:
git config --global alias.integrate '!test "$(git merge-base HEAD "$1")" = "$(git rev-parse HEAD)" && git merge --no-ff --edit $1 || echo >&2 "Not up-to-date; refusing to merge, rebase first!"'
有点拗口但有效。请注意使用选项编辑提交消息的力量--edit
。