Git拒绝合并不相关的历史。


Git refusing to merge unrelated histories. What is 'unrelated histories'?

在本地,我创建了新的文本文件->git add new file.txt->commit->pull origin master->error!

"拒绝合并无关历史"。

什么是无关的历史?,什么是相关历史?


我认为您已经在远程存储库中提交了,当您拉入这个错误时就会发生。

使用此命令

1
2
git pull origin master --allow-unrelated-histories
git merge origin origin/master


当本地的.git子目录不知何故丢失时,整个项目似乎不知从何处出现,因为所有的本地变化历史都包含在.git中。因此,您的本地更改变得不相关。这就是为什么所有的变化都被称为unrelated histories

在这种情况下,git merge or pull请求将无法跟踪您对远程项目添加所做的更改。因此,出现了" refusing to merge unrelated histories"错误。

在这种情况下,如果你试图通过

埃多克斯1〔5〕

git merge origin origin/master-这些命令会造成很多冲突,因为它无法找到您当地的变化历史。


我在Github Enterprise中重命名一个存储库时遇到了这个问题,然后按照下面的步骤生成一个名为repo的存储库。

  • 在远程创建repo示例
  • 克隆到本地
  • 将远程重命名为旧示例
  • 在远程创建名为sample的新repo
  • 试着从本地推它
  • 发生错误。
  • 奇怪的是,我删除了本地repo,但git尝试克隆旧的repo,即使我尝试通过新创建的repo url进行克隆。克隆URL只是自动重定向到旧的URL,即使新的URL存在于远程。我不知道这是因为服务器或本地Git进程。

    由于这个原因,发生错误的原因是Git进程无法将其本地提交历史记录与远程历史记录进行比较。

    在上述情况下,不相关的历史可以说明。

    我最终删除了远程的旧回购协议,它解决了。