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

时间:2015-02-20 08:48:28

标签: git git-merge fast-forward

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

2 个答案:

答案 0 :(得分:3)

可能有用的两个配置是:

merge.ff

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

pull.ff

(来自git config man page

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

要进行测试:pull.ff优先于merge.ff吗?

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

正如Kelvin提到的answer并由git-pull.sh确认,'only'是要使用的值,而不是'true'。< / p>

答案 1 :(得分:3)

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

使用此配置:

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

这意味着如果您尝试pull您的本地人落后的分支机构。在遥控器之前,pull将失败。在这种情况下,请执行rebase,以便您不再支持。

注意:

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