Git拒绝在变基上合并不相关的历史

问:

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

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

我的 Git 版本是 2.9.0。它曾经在以前的版本中工作正常。

如何使用新版本中引入的强制标志继续此变基以允许不相关的历史记录?

答1:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

您可以使用 --allow-unrelated-histories 强制合并发生。

这背后的原因是自 Git 2.9 以来默认行为发生了变化:

“git merge”用于允许合并两个默认情况下没有共同基础的分支,这导致创建现有项目的全新历史,然后被毫无戒心的维护者拉取,这允许将不必要的并行历史合并到现有项目中.该命令已被教导默认情况下不允许这样做,并在罕见事件中使用逃生舱口 --allow-unrelated-histories 选项,该事件合并了两个独立开始其生活的项目的历史。

有关详细信息,请参阅 Git release changelog。

知道合并更改,但此选项不适用于 rebase

是否有任何选项可以永久开启 --allow-unrelated-histories?

@jmarceli “因为这种“两个项目合并”是罕见的事件,所以没有添加始终允许这种合并的配置选项。”。所以不行。

我试图以这种方式为不同的 repo 合并一个分支,但它在我当前的分支上创建了一个新的提交,并且没有保留来自其他 repo 的历史记录。然后我从另一个 repo 中检查了一个本地分支,然后才合并它,突然出现了一个正常的合并提交。诡异的。

非常好,也适用于 git pull。在那次“罕见的事件中,合并了两个独立开始生活的项目的历史”。 git --work-tree="." pull --allow-unrelated-histories

答2:

huntsbot.com – 高效赚钱,自由工作

在我的情况下,每次尝试的错误只是 fatal: refusing to merge unrelated histories,尤其是远程添加 Git 存储库后的第一个拉取请求。

使用 --allow-unrelated-histories 标志以这种方式处理拉取请求:

git pull origin branchname --allow-unrelated-histories

根据 2.9.0 release notes - git pull 已被教导将 --allow-unrelated-histories 选项传递给底层 git merge

如果我使用 README.md 创建新的 Github 存储库,然后第一次将其拉到本地存储库,我总是会看到此错误。很烦人。

对于新的存储库,首先拉取,通常最好以 git clone 开头。

@PardeepJain 请看这个github.com/git/git/blob/master/Documentation/RelNotes/…

这让我停了好几个小时,然后我才意识到,如果默认文件发生这种情况,就必须有一个明显的解决方案来合并这样的文件——我很高兴至少我不是唯一一个遇到这个问题的人!

就我而言,这是因为我在 github 上添加了许可证文件。上面提到的命令(和下面,它们是相同的)有效。

答3:

huntsbot.com聚合了超过10+全球外包任务平台的外包需求,寻找外包任务与机会变的简单与高效。

尝试以下命令:

git pull origin master --allow-unrelated-histories

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

这怎么比第一个答案好?! stackoverflow.com/a/37938036/274502 应该是对其进行评论或编辑,以避免冗余和错误信息。

因为它解决了tl:dr

@okandas 祝你好运。浏览某些东西需要比大多数人愿意承认的更多的运气。

这是正确的解决方案

答4:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

当我首先设置本地存储库时出现此错误。然后我去了 GitHub 并创建了一个新的存储库。然后我跑了

git remote add origin 

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

这是我修复它的方法:

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

我想我们在同一条船上。添加一些东西:我的问题是远程仓库中已经有一些东西了。因此,在我的文件夹中,它删除了 .git 文件夹,运行 git init 并按照 Adithya 所说的操作,但合并部分除外。

如何在mac上按INSERT按钮?实际上,我必须输入提交消息并从命令行合并,但我不知道如何从命令行执行。

它打开vim吗?如果是这样,它只是 SHIFT + :

甚至我首先创建了 GitHub 存储库,并且正在执行添加存储库的那些命令。

这是一个非常好的答案。关键是你必须强制拉然后合并本地和远程仓库。

答5:

与HuntsBot一起,探索全球自由职业机会–huntsbot.com

为此,输入命令:

git pull origin branchname --allow-unrelated-histories

例如,

git pull origin master --allow-unrelated-histories

参考:

GitHub unrelated histories issue

感谢第一次为我拉它的作品“git pull origin master --allow-unrelated-histories”

应该对其进行评论或编辑,以避免冗余和错误信息。 stackoverflow.com/a/37938036/274502

答6:

huntsbot.com – 高效赚钱,自由工作

git pull origin  --allow-unrelated-histories

你将被引导到一个 Vim 编辑窗口:

插入提交消息

然后按 Esc(退出“插入”模式),然后按 :(冒号),然后按 x(小“x”),最后按 Enter 退出 Vim

git push --set-upstream origin <分支>

Ctrl+X 不会让你离开 Vim

但 :x 会

感谢您指定如何出去;我完全迷失了,所有其他答案似乎都认为这很明显!

答7:

huntsbot.com全球7大洲远程工作机会,探索不一样的工作方式

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

git pull origin branchName --allow-unrelated-histories

查看此 page 了解更多信息。

git merge origin/main localBranchName --allow-unrelated-histories 为我工作。

答8:

huntsbot.com提供全网独家一站式外包任务、远程工作、创意产品分享与订阅服务!

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 HUB DOCS --allow-unrelated-histories: --allow-unrelated-histories

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

https://i.stack.imgur.com/7cpDZ.png

参考

推荐:“致命:拒绝合并不相关的历史”Git 错误

Git 2.9 发行说明

更多关于堆栈溢出

推荐使用–allow-unrelated-histories的很好的解释和警告:拒绝合并不相关的历史”失败,同时拉到恢复的存储库

如果 --allow-unrelated-histories 不起作用:致命:添加 git remote 后拒绝合并不相关的历史

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

该用户使用 Github Desktop:如何解决上传项目到 github 时“拒绝合并无关历史”的问题?

Git 因致命错误而失败。拒绝将不相关的历史与 git push 合并?

答9:

huntsbot.com高效搞钱,一站式跟进超10+任务平台外包需求

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

git pull origin master --allow-unrelated-histories 

git push origin master

应该对其进行评论或编辑,以避免冗余和错误信息。 stackoverflow.com/a/37938036/274502

答10:

huntsbot.com洞察每一个产品背后的需求与收益,从而捕获灵感

对于 Android Studio 和 IntelliJ:

首先,提交所有内容并解决任何冲突。

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

git pull origin master --allow-unrelated-histories

现在可以推了。

它是一个 git 命令,与 Android Studio 或 Inteliji 无关

@AlpitAnand是的,因为这个问题和android studio或者IntelliJ没有直接关系,但是我在android studio中写了处理这个问题的方式

答11:

保持自己快人一步,享受全网独家提供的一站式外包任务、远程工作、创意产品订阅服务–huntsbot.com

试试git pull --rebase development

这解决了我的问题。这是问题的开始

这应该是:git pull --rebase=preserve --allow-unrelated-histories development

@RiccardoMurri 刚刚尝试过,我不会再这样做了。我的新仓库中有一些示例初始化文件,以及我的本地仓库几个月的提交。运行它(使用 newOrigin branch 而不是 development)将初始提交添加到本地分支的顶部,从而有效地从中删除了几乎所有内容。我希望新遥控器的初始提交位于底部。

原文链接:https://www.huntsbot.com/qa/g1PB/git-refusing-to-merge-unrelated-histories-on-rebase?lang=zh_CN&from=csdn

huntsbot.com – 程序员副业首选,一站式外包任务、远程工作、创意产品分享订阅平台。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值