30

来自git 书

您会在该合并中注意到“快进”一词。因为您合并的分支指向的提交直接位于您所在的提交的上游,所以 Git 将指针向前移动。换一种说法,当您尝试将一个提交与可以通过遵循第一个提交的历史到达的提交合并时,Git 通过向前移动指针来简化事情,因为没有不同的工作可以合并在一起——这被称为“快进”。

但是,这种“快进”的副作用是,如果您有一个具有多个提交的功能分支,那么当您合并回 master 时,您将丢失该功能的历史上下文。换句话说,提交不会作为此功能的一部分组合在一起。

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

without fast forward:  x---x---x         x---x---x---x
                                \x--x--x/

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

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

4

2 回答 2

46

将配置变量设置merge.fffalse

git config --global merge.ff false

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

于 2013-05-09T03:51:46.147 回答
1

对于任何想要在拉动时保持快进的人 - 您可以使用 pull.ff 配置覆盖拉动的 merge.ff 配置

git config --global pull.ff true

更多信息在这里: https ://git-scm.com/docs/git-config#Documentation/git-config.txt-pullff

于 2020-06-22T13:52:15.843 回答