在git重新启动/开发过程中,git显示以下错误消息:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
我的Git版本是2.9.0。它在以前的版本中运行良好。
我如何才能继续使用新版本中引入的强制标志来允许不相关的历史?
在git重新启动/开发过程中,git显示以下错误消息:
fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef
我的Git版本是2.9.0。它在以前的版本中运行良好。
我如何才能继续使用新版本中引入的强制标志来允许不相关的历史?
当前回答
首先,使用以下命令将远程更改拉到本地:
git pull origin branchname --allow-unrelated-histories
**在我的情况下,branchname是master。
当执行pull命令时,会发生冲突。你应该解决冲突。我使用Android Studio解决冲突。
当冲突解决后,合并就完成了!
现在你可以安全地推了。
其他回答
我也有同样的问题。试试看:
git pull origin master --allow-unrelated-histories
git push origin master
我也犯了同样的错误,这个命令对我有效:
git pull gitlab master --allow-unrelated-histories
请注意,在您的案例中,gitlab可能是origin或heroku。
如果您有存储库的浅Git克隆,也会发生这种情况。
我最近在CI/CD设置中遇到了这个问题,以前的解决方案都不适合我。我正在构建一个CI/CD管道,以分析MR源分支的MR创建代码。为此,我需要在main分支上运行一次分析,然后在与main合并的MR源分支上运行分析,在尝试通过gitmerge命令合并分支时出现了这个错误。
CI/CD设置中出现这种情况的原因:通常在CI/CD环境中,Git存储库是一个用来加快速度的浅层克隆,它不包括完整的提交历史,因此,在合并Git时,我们可能会认为我们正在尝试合并不相关的分支,这实际上是不正确的。
解决方案:
使用以下命令将浅存储库转换为非浅存储库:
git fetch --unshallow
致命的:拒绝合并不相关的历史也可能是由于肤浅的克隆造成的,因为嫁接提交没有深入到足以看到共同的基础。
我在第一次设置本地存储库时遇到了这个错误。然后我去了GitHub并创建了一个新的存储库。然后我跑了
git remote add origin <repository url>
当我尝试推或拉时,我每次都会遇到同样的致命错误:unlated_histories错误。
以下是我修复它的方法:
git pull origin master --allow-unrelated-histories
git merge origin origin/master
... add and commit here...
git push origin master