使用git merge时,如何将"快进"设置为默认值

fon*_*tno 21 git git-merge

git书:

你会注意到那个合并中的短语"快进".因为您合并的分支所指向的提交直接位于您所在的提交的上游,所以Git将指针向前移动.换句话说,当你尝试将一个提交与可以通过遵循第一个提交的历史记录到达的提交合并时,Git通过向前移动指针来简化事情,因为没有不同的工作要合并在一起 - 这称为"快进".

但是,此"快进"的副作用是,如果您有一个具有多个提交的功能分支,则在合并回主服务器时将丢失该功能的历史上下文.换句话说,提交不会被组合在一起作为此功能的一部分.

with fast forward:     x---x---x---x---x---x---x

without fast forward:  x---x---x         x---x---x---x
                                \x--x--x/
Run Code Online (Sandbox Code Playgroud)

手动方式是 git merge --no-ff

有谁知道如何将其设置为默认值?

ber*_*eal 39

将config变量设置merge.fffalse:

git config --global merge.ff false
Run Code Online (Sandbox Code Playgroud)

(不--global限制对当前项目的影响)

  • 但请注意,`git pull`(没有--rebase)正在进行合并,因此会创建(通常不需要的)合并提交. (5认同)
  • @michas有一个解决方案,只适用于合并而不是git pull吗? (2认同)