关闭常规合并的快进合并,但不关闭拉合并



我希望git在使用git merge时始终进行合并提交(--no-ff),但保留git pull的默认行为(--ff)。这可能(通过配置)吗?

可能有帮助的两个配置是:

merge.ff

(来自git merge手册页):当设置为false时,此变量告诉Git在这种情况下创建一个额外的合并提交(相当于从命令行提供--no-ff选项)。

pull.ff

(来自git config手册页)

pull.ff设置为true将保持默认行为,即Git在合并作为当前提交的后代的提交时不创建额外的合并提交。

待测试:pull.ff是否优先于merge.ff

git config pull.ff only
git config merge.ff false

正如Kelvin的回答所提到的,并得到git-pull.sh的证实,"only"是要使用的值,而不是"true"。

这是我的暂定工作流程(请注意,pull.ff配置选项仅适用于git2.x)

使用此配置:

  • merge.ff设置为false。这将默认merge行为为--no-ff
  • pull.ff设置为only。这将默认pull行为为--ff-only

这意味着,如果你尝试pull,你的本地分支机构都落后于&在远程之前,pull将失败。在这种情况下,做一个rebase,这样你就不会再落后了。

注:

我尝试将pull.ff设置为true,但git似乎将其视为完全未设置选项。请注意,手册页没有提到true是公认的值。

相关内容

  • 没有找到相关文章

最新更新