6

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

4

2 回答 2

3

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

merge.ff

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

pull.ff

(来自git config手册页

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

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

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

正如Kelvin回答所提到并由确认的那样git-pull.sh,' only' 是要使用的值,而不是 ' true'。

于 2015-02-20T08:59:35.727 回答
3

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

使用此配置:

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

这意味着,如果您尝试访问pull本地既落后于又领先于远程的分支,pull则会失败。在这种情况下,请这样做,rebase这样您就不会再落后了。

笔记:

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

于 2015-04-02T18:01:16.330 回答