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

时间:2017-07-24 04:11:09

标签: git

在我的本地,我制作了新的文本文件 - > git add newfile.txt - >提交 - >拉起源大师 - >错误!

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

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

5 个答案:

答案 0 :(得分:56)

我认为您已在远程存储库中提交,并且当您发生此错误时。

使用此命令

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

答案 1 :(得分: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-这些命令将导致很多冲突,因为它无法找到您的本地更改历史记录。

答案 2 :(得分:1)

我遇到了一个类似的问题,我从第二个遥控器引入一个分支,并希望与第一个遥控器的分支合并。这与现有的答案不同,因为我不是在拉取中使用--allow-unrelated-histories,而是在合并中使用。

git checkout master
git merge --allow-unrelated-histories myfunnybrancy

答案 3 :(得分:0)

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

  1. 在远程创建回购示例
  2. 将其克隆到本地
  3. 重命名为旧样本
  4. 在远程目录中创建一个名为sample的新仓库
  5. 尝试从本地推送
  6. 发生错误。

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

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

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

我最终删除了远程中重命名的旧存储库,并解决了。

答案 4 :(得分:0)

git pull origin master --allow-unrelated-history