使用 git merge 时如何默认不设置“快进”

问题描述 投票:0回答:2

来自 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

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

git git-merge
2个回答
50
投票

将配置变量

merge.ff
设置为
false
:

git config --global merge.ff false

(没有

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


4
投票

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

git config --global pull.ff true

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

© www.soinside.com 2019 - 2024. All rights reserved.