我希望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
是公认的值。