念念不忘
必会回响

git fatal 拒绝合并无关的历史

1. 场景

最近学习前端,所以在电脑上创建了jslearn的项目来练习,在公司时用win学习,在家用mac,因为学习的同时也记录了笔记,于是就想用git做一下同步,首先在win电脑上创建git仓库,并将代码同步到github,然后在mac上的learn也创建git仓库,并将仓库地址指向同一个,此时,使用git pull会提示如下错误:

git pull origin main
来自 https://github.com/tvzr/jslearn
 * branch            main       -> FETCH_HEAD
fatal: 拒绝合并无关的历史

2. 原因

本地初始化的项目 与 github 版本不一致, 导致无法提交

3. 解决办法

只需要加个--allow-unrelated-histories参数即可。

git pull origin main --allow-unrelated-histories  
来自 https://github.com/tvzr/jslearn
 * branch            main       -> FETCH_HEAD
Merge made by the 'ort' strategy.
 README.md                  |  1 +
 匿名自执行函数.html | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 对象.html                | 40 ++++++++++++++++++++++++++++++++++++++++
 逻辑中断.html          | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 142 insertions(+)
 create mode 100644 README.md
 create mode 100644 匿名自执行函数.html
 create mode 100644 对象.html
 create mode 100644 逻辑中断.html

4. 附加

有时候,推送代码的时候还会提示如下:

git push -u origin master
枚举对象中: 9, 完成.
对象计数中: 100% (9/9), 完成.
使用 8 个线程进行压缩
压缩对象中: 100% (6/6), 完成.
写入对象中: 100% (6/6), 1.27 KiB | 1.27 MiB/s, 完成.
总共 6(差异 3),复用 0(差异 0),包复用 0
remote: Resolving deltas: 100% (3/3), completed with 3 local objects.
remote: fatal error in commit_refs
To https://github.com/tvzr/hexo-blog.git
 ! [remote rejected] master -> master (failure)
error: 无法推送一些引用到 'https://github.com/tvzr/hexo-blog.git'

解决办法:

方法一:

# 从当前分支为基础,创建一个新的分支,以master为例
git checkout -b "back_master"

# 删除本地master分支
git branch -D master

# 拉取master分支代码
git pull origin master

# 我还执行了一步git fetch
git fetch --all

# 切换到master分支
git checkout master

# 合并back_master到master
git merge back_master

# 删除back_master
git branch -D back_master

# 推送代码到github
git push origin master

方法二:

git push -f origin master # 简单又粗暴
赞(4) 打赏
未经允许不得转载:堆上小栈 » git fatal 拒绝合并无关的历史

评论 抢沙发

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫

微信扫一扫

登录

找回密码

注册