Git拒绝在Rebase上合并不相关的历史记录

eimct9ow  于 2022-09-21  发布在  Git
关注(0)|答案(11)|浏览(206)

git rebase origin/development期间,Git显示以下错误消息:

fatal: refusing to merge unrelated histories
Error redoing merge 1234deadbeef1234deadbeef

我的Git版本是2.9.0。在以前的版本中,它曾经运行得很好。

我如何使用新版本中引入的FORCED标志来允许不相关的历史记录?

6ovsh4lw

6ovsh4lw1#

您可以使用--allow-unrelated-histories强制执行合并。

这背后的原因是,自Git 2.9以来,默认行为发生了变化:
“Git Merge”用于在默认情况下允许合并两个没有公共基础的分支,这会导致创建现有项目的全新历史,然后被毫无戒心的维护者拉出,这允许将不必要的并行历史合并到现有项目中。该命令已被告知默认情况下不允许,并在合并独立启动的两个项目的历史的罕见情况下使用逃生通道--allow-unrelated-histories选项。

有关更多信息,请参阅Git版本更改日志。

更多信息可以在这个答案中找到。

2ledvvac

2ledvvac2#

在我的例子中,每次尝试都会出现fatal: refusing to merge unrelated histories错误,特别是远程添加Git存储库后的第一个Pull请求。

使用--allow-unrelated-histories标记以如下方式处理拉入请求:

git pull origin branchname --allow-unrelated-histories
  • 根据2.9.0发行说明-git pull已被告知将--allow-unrelated-histories选项传递给底层git merge*
vq8itlhq

vq8itlhq3#

尝试执行以下命令:

git pull origin master --allow-unrelated-histories

这应该可以解决你的问题。

nle07wnf

nle07wnf4#

当我第一次设置本地存储库时,我收到了这个错误。然后我转到GitHub并创建了一个新的存储库。然后我跑了

git remote add origin <repository url>

当我尝试推或拉时,每次都得到相同的fatal: unrelated_histories错误。

以下是我如何修复它的:

git pull origin master --allow-unrelated-histories
git merge origin origin/master
... add and commit here...
git push origin master
v9tzhpje

v9tzhpje5#

为此,请输入以下命令:

git pull origin branchname --allow-unrelated-histories

例如,

git pull origin master --allow-unrelated-histories

参考资料:

GitHub无关历史记录问题

qlvxas9a

qlvxas9a6#

git pull origin <branch> --allow-unrelated-histories

您将被路由到Vim编辑窗口:

  • 插入提交消息
  • 然后按Esc(退出“插入”模式),然后:(冒号),然后x(小写“x”),最后按Enter退出Vim
  • git push --set-upstream origin <branch>
zf9nrax1

zf9nrax17#

我运行了这个命令,问题得到了解决。

git pull origin branchName --allow-unrelated-histories

请查看此页面以了解更多信息。

jvidinwx

jvidinwx8#

1.解决问题

执行git pull origin master时遵循错误

fatal: refusing to merge unrelated histories

运行以下命令之一


# It could be master

 git pull origin master --allow-unrelated-histories
 # Or main
 git pull origin main --allow-unrelated-histories
 # Or just try with origin 
 git pull origin main --allow-unrelated-histories

如果它打开一个Nano编辑器,你只需用CTRL + x保存并关闭即可

现在在本地推送修改

git push

2.含义

  • 错误**:

当两个不相关的项目合并时(即,不知道彼此的存在并且提交历史不匹配的项目),就会出现“致命:拒绝合并不相关的历史”Git错误。

  • 命令git集线器DOCS--Allow-无关历史**:

--允许-无关-历史
默认情况下,git merge命令拒绝合并不共享共同祖先的历史。合并独立启动的两个项目的历史时,此选项可用于覆盖此安全性。由于这是非常罕见的情况,默认情况下不存在启用此功能的配置变量,也不会添加此配置变量。

参考资料

堆栈溢出详解

k3fezbri

k3fezbri9#

我也有同样的问题。试试这个:

git pull origin master --allow-unrelated-histories 

git push origin master
7rtdyuoh

7rtdyuoh10#

Android Studio和IntelliJ:

首先,承诺所有事情并解决任何冲突。

然后从IDE下方打开终端,输入:

git pull origin master --allow-unrelated-histories

现在你可以推了。

oaxa6hgo

oaxa6hgo11#

试试git pull --rebase development

相关问题