fatal: refusing to merge unrelated histories 解决方案

问题描述

当本地分支与远程分支没有共同祖先时,会出现 fatal: refusing to merge unrelated histories 的问题。

解决方案

可以使用 rebase 的方式来进行合并。

git pull --rebase origin master

实例验证

可以通过一个小实验来体会一下:

cd
mkdir rebaseTmp
cd rebaseTmp
echo "hello a line" > tmp.txt
git init
git add .
git commit -m "Local first commit"
git remote add origin  https://github.com/HustLion/java_console_log4j.git
git pull --rebase origin master

得到的结果:

warning: no common commits
remote: Counting objects: 32, done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 32 (delta 3), reused 28 (delta 2), pack-reused 0
Unpacking objects: 100% (32/32), done.
From https://github.com/HustLion/java_console_log4j
 * branch            master     -> FETCH_HEAD
 * [new branch]      master     -> origin/master
First, rewinding head to replay your work on top of it...
Applying: Local first commit

此时文件结构是:

.
├── LICENSE
├── README.md
├── pom.xml
├── src
│   ├── main
│   │   └── java
│   │       ├── com
│   │       │   └── hustlion
│   │       │       └── java_console_log4j
│   │       │           └── App.java
│   │       └── log4j2.properties
│   └── test
│       └── java
│           └── com
│               └── hustlion
│                   └── java_console_log4j
│                       └── AppTest.java
└── tmp.txt

可以看到我们的本地 commit 带来的 tmp.txt 与远程项目通过 rebase 很好地合并在了一起。

参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值