Git merge 出现 refusing to merge unrelated histories

Posted 顧棟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git merge 出现 refusing to merge unrelated histories相关的知识,希望对你有一定的参考价值。

GIT合并不相关的分支

问题

不管由于什么操作,导致了仓库中有两个不相关的分支,如下图,分支topic和分支master,并没有相交的部分,现在需要将topic分支合并到master分支上。

	A---B---C topic
	          
    D         master

切换到master分支 作为当前分支执行merge命令

git merge topic

出现报错信息

Could Not Merge topic: refusing to merge unrelated histories 

解决方案

查阅GIT官网,发现merge有一个选项--allow-unrelated-histories,对于这个选项的解释是默认情况下, git merge 命令拒绝合并不具有共同祖先的历史。 在合并两个独立开始的项目的历史记录时,可以使用此选项来覆盖此安全性。 由于这是一种非常罕见的情况,因此默认情况下不存在启用此功能的配置变量,也不会添加。 这个选项也只在合并的时候生效。

–allow-unrelated-histories
By default, git merge command refuses to merge histories that do not share a common ancestor. This option can be used to override this safety when merging histories of two projects that started their lives independently. As that is a very rare occasion, no configuration variable to enable this by default exists and will not be added.
Only useful when merging.

重新执行命令

git merge topic --allow-unrelated-histories

在合并的时候会需要提交一个merge的说明,是一个交互式的,正常操作即可。

合并成功,分支结果图如下

	A---B---C topic
	          \\
    D----------E master

以上是关于Git merge 出现 refusing to merge unrelated histories的主要内容,如果未能解决你的问题,请参考以下文章

git 出现 fatal: refusing to merge unrelated histories 错误

Git fatal: refusing to merge unrelated histories

git merge合并时遇上refusing to merge unrelated histories的解决方案

git merge合并时遇上refusing to merge unrelated histories的解决方案

git无法pull仓库refusing to merge unrelated histories

Git报错-refusing to merge unrelated histories