我可以使快进在默认情况下在git?
我真的不会想到我会使用git merge
而不是git rebase
而不想提交一个commit。 有什么办法可以让git默认快速转发吗? 有一个--ff
选项似乎意味着有一种方法,但我似乎无法在文档中find它。
是的,有--no-ff
。 您可以configuration每个分支的合并选项,例如
git config branch.master.mergeoptions "--no-ff"
将以下内容添加到$(REPO)/.git/config
文件中:
[branch "master"] mergeoptions = --no-ff
脚注:说到我的经验,我最终发现,快速切换到closures对于git新手来说是非常有帮助的 – 但是一旦工作stream程和概念的感觉开始下降,您肯定希望避免模糊您的日志graphics中的大量无意义的合并远程..blarf'types提交。
看来还有一个悬而未决的问题:如何在全球范围内(即所有分支机构)? 对于logging,我们可以使用以下内容:
git config --add merge.ff false
…使其适用于当前存储库中的所有分支。 为了使它适用于所有存储库中所有 没有运行--global
选项(本地设置覆盖全局)的分支,请运行以下命令:
git config --global --add merge.ff false
从文档 (searchmerge.ff):
merge.ff
默认情况下,git在合并作为当前提交的后代的提交时不会创build额外的合并提交。 相反,当前分支的尖端被快速转发。 当设置为false时,这个variables告诉git在这种情况下创build一个额外的合并提交(相当于从命令行提供--no-ff
选项)。 当设置为只有这样的时候,只允许这样的快进合并(相当于--ff-only
提供--ff-only
选项)。