Git拒绝合并不相关的历史。什么是“无关的历史”?

问题描述 投票:33回答:3

在我的本地,我制作了新的文本文件 - > git add newfile.txt - > commit - > pull origin master - > ERROR!

“拒绝合并不相关的历史”。

什么是不相关的历史?什么是相关历史?

git
3个回答
56
投票

我认为你已经在远程存储库中提交,当你拉出这个错误发生时。

使用此命令

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

3
投票

当某个地方的.git子目录丢失时,整个项目似乎从无处出现,因为所有的局部变化历史都被.git所包含。因此,您的本地更改变得无关紧要。这就是为什么所有的变化都被称为unrelated histories然后。

在这种情况下,git merge or pull请求将无法跟踪您在远程项目中添加更改的位置。因此,发生" refusing to merge unrelated histories"-错误。

在这种情况下,如果您尝试强制合并

git pull origin master --allow-unrelated-histories

git merge origin origin/master - 这些命令会产生很多冲突,因为它无法找到您的本地更改历史记录。


0
投票

当我在GitHub Enterprise中重命名一个存储库,然后按照以下步骤制作相同的前命名存储库时,我遇到了这个问题。

  1. 在远程创建repo示例
  2. 克隆到本地
  3. 将远程重命名为旧样本
  4. 在远程创建一个名为sample的新repo
  5. 试着从本地推出它
  6. 发生了错误。

奇怪的是我删除了本地仓库,但即使我尝试通过新创建的repo url克隆,git也会尝试克隆旧的仓库。即使新的URL存在于远程中,克隆URL也会自动重定向到旧的URL。我不知道这个原因来自服务器或本地git进程。

因此,发生错误是因为git进程无法将其本地提交历史记录与远程历史记录进行比较。

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

我最终删除了远程重命名的旧仓库,它解决了。

© www.soinside.com 2019 - 2024. All rights reserved.