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

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

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

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


当前回答

我也有同样的问题。问题很遥远,有一些东西阻止了这一点。

我首先创建了一个本地存储库。我将LICENSE和README.md文件添加到本地并提交。

然后我想要一个远程存储库,所以我在GitHub上创建了一个。在这里,我错误地选中了“用README初始化这个存储库”,这也在远程创建了一个README.md。

所以现在当我跑步时

git push --set-upstream origin master

我得到了:

error: failed to push some refs to 'https://github.com/lokeshub/myTODs.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes
(e.g. hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

现在为了克服这一点,我做到了

git pull origin master

导致以下错误:

From https://github.com/lokeshub/myTODs
branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories**

我尝试了:

git pull origin master --allow-unrelated-histories

结果:

From https://github.com/lokeshub/myTODs
 * branch            master     -> FETCH_HEAD
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed;
fix conflicts and then commit the result.

解决方案:

我删除了远程存储库,并创建了一个新的(我认为只有删除文件README才能起作用),之后,以下操作奏效:

git remote rm origin
git remote add origin https://github.com/lokeshub/myTODOs.git
git push --set-upstream origin master

其他回答

我也有同样的问题。问题很遥远,有一些东西阻止了这一点。

我首先创建了一个本地存储库。我将LICENSE和README.md文件添加到本地并提交。

然后我想要一个远程存储库,所以我在GitHub上创建了一个。在这里,我错误地选中了“用README初始化这个存储库”,这也在远程创建了一个README.md。

所以现在当我跑步时

git push --set-upstream origin master

我得到了:

error: failed to push some refs to 'https://github.com/lokeshub/myTODs.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes
(e.g. hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

现在为了克服这一点,我做到了

git pull origin master

导致以下错误:

From https://github.com/lokeshub/myTODs
branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories**

我尝试了:

git pull origin master --allow-unrelated-histories

结果:

From https://github.com/lokeshub/myTODs
 * branch            master     -> FETCH_HEAD
Auto-merging README.md
CONFLICT (add/add): Merge conflict in README.md
Automatic merge failed;
fix conflicts and then commit the result.

解决方案:

我删除了远程存储库,并创建了一个新的(我认为只有删除文件README才能起作用),之后,以下操作奏效:

git remote rm origin
git remote add origin https://github.com/lokeshub/myTODOs.git
git push --set-upstream origin master

在进行git拉动时,我得到了一条致命的消息:拒绝合并不相关的历史记录我有一段时间没有更新本地副本的回购模块。

我运行这个命令只是为了从原点刷新本地。我只想要远程的最新版本,不需要任何本地更改。

git reset --hard origin/master

这解决了我的问题。

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

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

我也很挣扎,但我设法找到了解决办法。

当您遇到上面的错误时,只需选择合并提交,然后继续重新启动:

git cherry-pick -m 1 1234deadbeef1234deadbeef
git rebase --continue

我也有同样的问题。试试看:

git pull origin master --allow-unrelated-histories 

git push origin master