协慌网

登录 贡献 社区

Git 拒绝合并关于 rebase 的无关历史

git rebase origin/development期间, git rebase origin/development显示以下错误消息:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

我的 git 版本是 2.9.0。用于在以前的版本中正常工作。

如何通过新版本中引入的强制标记继续使用此 rebase,从而允许不相关的历史记录?

答案

自 git 2.9 以来,默认行为已更改:

“git merge” 用于允许合并默认情况下没有公共基础的两个分支,这导致创建现有项目的全新历史,然后由不知情的维护者提取,这允许将不必要的并行历史合并到现有项目中。 默认情况下 ,该命令已被教导不允许这样做 ,并且在一个罕见的事件中使用了逃逸舱口--allow-unrelated-histories选项,该事件合并了两个独立开始生命的项目的历史记录。

有关更多信息,请参阅git release changelog

您可以使用--allow-unrelated-histories强制合并发生。

在我的情况下,错误只是fatal: refusing to merge unrelated histories在远程添加 git repo 之后fatal: refusing to merge unrelated histories在每个特别是第一次拉取请求上fatal: refusing to merge unrelated histories

使用--allow-unrelated-histories标志以这种方式处理 pull 请求:

git pull origin branchname --allow-unrelated-histories

请尝试以下命令

git pull origin master --allow-unrelated-histories

这应该可以解决你的问题。