解决 Git 中 fatal: refusing to merge unrelated histories

Git 的报错

在使用 Git 的过程中有时会出现一些问题,那么在解决了每个问题的时候,都需要去总结记录下来,下次不再犯。

fatal: refusing to merge unrelated histories

今天在使用 Git 创建项目的时候,在两个分支合并的时候,出现了下面的这个错误。

D:\lixiaoqiang\DRX-Project\hb-langfang-huishouxiang>git pull origin master
From gogs.sxitdlc.com:sxdlc/dlc-hblftshsz-android-new
 * branch            master     -> FETCH_HEAD
fatal: refusing to merge unrelated histories

这里的问题的关键在于:fatal: refusing to merge unrelated histories

你可能会在 git pull 或者 git push 中都有可能会遇到,这是因为两个分支没有取得关系。那么怎么解决呢?

解决方案

在你操作命令后面加 --allow-unrelated-histories 例如: git merge master --allow-unrelated-histories

D:\lixiaoqiang\DRX-Project\hb-langfang-huishouxiang>git pull origin master --allow-unrelated-histories
From gogs.sxitdlc.com:sxdlc/dlc-hblftshsz-android-new
 * branch            master     -> FETCH_HEAD
Merge made by the 'recursive' strategy.
 README.md | 3 +++
 test.text | 3 +++
 2 files changed, 6 insertions(+)
 create mode 100644 README.md
 create mode 100644 test.text

如果你是 git pull 或者 git pushfatal: refusing to merge unrelated histories

同理: git pull origin master –allow-unrelated-histories 等等,就是这样完美的解决咯!

注意点

上面要执行 --allow-unrelated-histories 有几个前提条件:

  1. 确保你已经正常设置了 remote 地址,并且可以连接到 remote 仓库。
  2. 你必须具有管理权限,而不是仅仅有可读可写权限,可读可写权限不能执行。