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


当前回答

免责声明:这些命令将从远程分支到您的分支中带来更改。

快拉,变基。与其他解决方案不同,您不需要知道目标分支的名称。

如果你的上游分支没有设置,尝试git拉origin <branch>—rebase(在评论中归功于@Rick)

要全局设置这个选项,使用git config——global pull。rebase true(归功于@Artur Mustafin)

其他回答

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

git checkout branchname
git reset --hard origin/branchname

免责声明:这些命令将从远程分支到您的分支中带来更改。

快拉,变基。与其他解决方案不同,您不需要知道目标分支的名称。

如果你的上游分支没有设置,尝试git拉origin <branch>—rebase(在评论中归功于@Rick)

要全局设置这个选项,使用git config——global pull。rebase true(归功于@Artur Mustafin)

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

Git拉原点-rebase

If

git pull

不做的把戏,如果你想合并当前的变化和变化将来自分支从原点拉,然后这样做:-

git merge origin/BRANCH_NAME

之后,解决合并冲突,如果有的话,这一天就结束了。

如果在未来得到这个git错误,这个解决方案将帮助你

从(development/master/main)导入到本地分支时出现错误: 错误信息:

hint: You have divergent branches and need to specify how to reconcile them. hint: You can do so by running one of the following commands sometime before hint: your next pull: hint: hint: git config pull.ff only # fast-forward only hint: hint: You can replace "git config" with "git config --global" to set a default hint: preference for all repositories. You can also pass --re base, --no-re base, hint: or --ff-only on the command line to override the configured default per hint: invocation. fatal: Need to specify how to reconcile divergent branches.

解决方案: 打开.git配置文件并添加这一行 1)(拉) Ff = no 如果第一步对你不起作用,那么就应用第二步

2)git pull -ff-only或git config -global pull。ff只