在git重新启动/开发过程中,git显示以下错误消息:

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

我的Git版本是2.9.0。它在以前的版本中运行良好。

我如何才能继续使用新版本中引入的强制标志来允许不相关的历史?


当前回答

我遇到了同样的问题:

这是我所做的:

git pull origin main --allow-unrelated-histories

我使用Visual Studio代码解决了合并冲突,然后我做到了:

git commit -m "commit message"

git push origin main

其他回答

警告:这可能会覆盖远程存储库

这对我有用:

git push origin master --force

致命的:拒绝合并不相关的历史也可能是由于肤浅的克隆造成的,因为嫁接提交没有深入到足以看到共同的基础。

我认为这是一种非常罕见的情况;您已删除远程(例如,原点):

git remote rm origin

然后,过了一段时间,出于某种原因,您尝试将其添加回去,但输入了错误的URL。

git remote add origin git@github.com:example/wrong.git

当然,解决方案是使用正确的URL:

git remote add origin git@github.com:example/correct.git

如果您在GitHub上创建了一个新的存储库,并意外地用README或.gitignore文件初始化了它。

如果您发现由于.git文件夹损坏而无法合并或重新创建基。

然后:

创建新文件夹git克隆将所有文件粘贴到此文件夹

现在,本地和远程将拥有“相关历史”,并将愉快地合并或重新基础。

对于Android Studio和IntelliJ:

首先,承诺一切并解决任何冲突。

然后从IDE下方打开终端并输入:

git pull origin master --allow-unrelated-histories

现在你可以推了。