Impossible to merge branch:拒绝合并不相关的历史

Impossible to merge branch: refusing to merge unrelated histories

我确实在 Git 上创建了一个远程仓库 ('myRepo')。 我选中了复选框 'add a READ.me',它也对这个 'myRepo' 存储库进行了提交。

然后我创建了一个新文件夹,我在其中添加了一些文件并做了:

git init
git add .
git commit -m "init"
git remote add origin https://github.com/jozinho947/myRepo.git

# get the READ.me fetched on the 'origin/master' branch locally
git fetch

# get the READ.me merged in my local 'master' where i'm pointing
git merge origin/master

然后我有这个错误:

fatal: refusing to merge unrelated histories

我不明白为什么我不能这样做... 有人可以帮助我吗?

你的 repo 的远程副本有一个根提交,没有父提交——第一次提交有一个 README.md 文件。

通过您在本地执行的操作,您的本地存储库也有一个没有父项的根提交。

git merge 拒绝工作,因为它找不到这两个提交的共同祖先。


您可能想一个接一个地重播您的提交,使用 git rebase 而不是 git merge :

git rebase origin/master

这应该在“自述文件”提交之上应用您的本地根提交。


如果您想以相反的顺序重播它们(在本地提交之上进行远程提交):使用 git cherry-pick origin/master。然后你需要强制推送你的主分支。

如果您有充分的理由在您的存储库中保留两个根提交:您可以使用 git merge--allow-unrelated-histories 选项。

尝试使用此 git 命令拉动 git pull origin main --allow-unrelated-histories

这应该从您的远程存储库中获取主分支并将其与您的本地存储库合并,之后您将使用 git push -u origin main.

将您的代码推送到远程存储库

您收到该错误消息是因为对远程存储库进行了提交,例如当您允许 Github 代表您初始化 README 文件时。 但是由于您的本地存储库缺少该自述文件,因此出现消息:fatal refusing to merge unrelated branches