为什么Git不允许我快进合并了?如果我试图使用——ff-only强制它,我会得到消息“致命:不可能快进,终止。”我意识到合并-no-ff有巨大的优势,但我只是不明白为什么我现在不能-ff-only ?


当前回答

使用选项——no-ff关闭一次快进:

git pull --no-ff

https://git-scm.com/docs/git-pull#Documentation/git-pull.txt---no-ff

其他回答

如果您在本地分支上执行git pull origin master时遇到此情况,请在记事本中打开.gitconfig(通常隐藏在C:\Users\Myname中)并添加这两行

[pull]
    ff = no

保存配置并再次尝试git pull origin master

你的分支不再直接基于你试图合并到的分支——例如,另一个提交被添加到目标分支,而这个分支并不在你的分支中。因此,您不能快进到它(因为快进要求您的分支完全包含目标分支)。

你可以在目标分支的基础上重新建立你的分支(git rebase <destination branch>)来重新提交,这样它们就会快速前进到目标分支中,或者你可以做一个常规的合并。

您可以在终端上尝试这一点,它实际上编辑您的<。Gitconfig >文件并设置ff = no

git config pull.ff no

尝试一下,会工作得很好----

Git拉原点-rebase

如果原始分支被压缩,或者有一个更改破坏了提交历史,如果你不关心本地分支提交历史,你可以重置本地分支

git checkout branchname
git reset --hard origin/branchname