拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 如何修复Git “拒绝合并不相关的历史”

如何修复Git “拒绝合并不相关的历史”

白鹭 - 2022-09-08 2143 0 2

一、概述

在Git 中,有时分支没有共同的历史库。因此,如果我们尝试合并它们,我们会得到“refusing to merge unrelated histories”错误。在本教程中,我们将讨论如何修复此错误以及如何在未来的项目中避免此错误。

2. 为什么分支可以有不相关的历史?

让我们看看分支有不相关历史时的场景。拥有不相关的历史记录库的最常见原因是彼此独立地启动分支。例如,如果我们在本地机器上启动一个新的Git 项目,然后将其连接到远程GitHub 分支,这些分支将具有不同的历史记录库。

唯一的例外是其中一个分支没有提交。在这种情况下,它们应该毫无问题地合并。否则,我们将得到“refusing to merge unrelated histories”,如下例所示:

$ git pull origin main
 ...
 fatal: refusing to merge unrelated histories

正如我们所见,我们无法使用git pull命令来合并具有不常见历史记录的分支。

3.如何修复错误

要修复上述错误,我们需要在git pull <remote> <branch>命令后使用选项–allow-unrelated-histories,其中

  • <remote>是远程存储库URL 或其短名称origin

  • <branch>是我们要合并的分支名称

例如:

$ git pull origin main --allow-unrelated-histories

–allow-unrelated-histories选项将告诉Git 我们允许合并没有公共历史库的分支,然后应该会在没有错误的情况下完成合并。我们应该注意,对于Git 2.9 或更早的版本,这个选项不是必需的,我们的合并应该在没有它的情况下工作。要检查Git 版本,我们可以使用git –version命令。

4. 未来如何避免错误

通常,独立于远程存储库创建本地存储库分支不是最佳实践。更可靠的方法是使用git clone命令将远程存储库下载到本地机器,如下所示:

$ git clone <repo_url>

这样,我们从远程服务器复制存储库,并且远程和本地分支的提交历史记录库保持相同。

5. 结论

在本教程中,我们讨论了当Git 拒绝合并不相关的历史时如何合并分支。我们首先查看了何时会发生此错误。然后,我们使用–allow-unrelated-histories选项来修复它。最后,我们学会了如何在未来的项目中避免这个错误。


标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *