我可以使快进在默认情况下在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选项)。