Jas*_*ker 257 git merge branch rebase fast-forward
我真的不能没有想过的时候,我会用git merge,而不是git rebase和不希望有一个承诺现身.有没有办法配置git默认快速关闭?事实上,有一个--ff选项似乎意味着有一种方法,但我似乎无法在文档中找到它.
Eri*_*ton 332
似乎线程中还有一个悬而未决的问题:如何全局(即所有分支)?对于记录,我们可以使用以下内容:
git config --add merge.ff false
Run Code Online (Sandbox Code Playgroud)
...使其适用于当前存储库中的所有分支.为了使适用于所有部门所有存储库,其中有人不无运行--global选项(本地设置覆盖全局)运行以下命令:
git config --global --add merge.ff false
Run Code Online (Sandbox Code Playgroud)
从文档:
merge.ff
默认情况下,当合并作为当前提交的后代的提交时,git不会创建额外的合并提交.相反,当前分支的提示是快进的.当设置为false时,此变量告诉git在这种情况下创建额外的合并提交(相当于--no-ff从命令行提供选项).设置为only时,仅允许此类快进合并(相当于--ff-only从命令行提供选项).
con*_*nny 273
是的,有--no-ff.您可以为每个分支配置合并选项,例如
git config branch.master.mergeoptions "--no-ff"
Run Code Online (Sandbox Code Playgroud)
将以下内容添加到您的$(REPO)/.git/config文件中:
[branch "master"]
mergeoptions = --no-ff
Run Code Online (Sandbox Code Playgroud)
脚注:谈到我的经验,我最终发现快速切换到关闭对git新手大多有帮助 - 但是一旦工作流和概念的感觉开始沉沦你绝对想要避免模糊你的日志图与大量毫无意义的'合并remote ..blarf'类型提交.
bas*_*ian 11
阅读答案的主题我最终使用以下两个选项
git config --global pull.ff only # Disallows non ff merges on pull. Overrides merge.ff when pulling
git config --global merge.ff false # even create extra merge commit when fast forward merge would be possible
Run Code Online (Sandbox Code Playgroud)
只是松散相关我也发现这个设置避免了拉动过程中的麻烦
git config --global pull.rebase # set up pull to rebase instead of merge
Run Code Online (Sandbox Code Playgroud)