将Idea中的项目上传到github报错:refusing to merge unrelated histories

问题描述:

问题出现于我将本地写的项目上传到github时。
本地git仓库已经初始化,并进行了add和commit到本地仓库的操作。
当我直接执行push到origin/master(main)操作时会报错:

Push rejected: Push to xxx/master was rejected

具体错误日志如下:

Pushing to xxx.git
To xxx.git
 ! [rejected]        master -> master (non-fast-forward)
error: failed to push some refs to 'xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

或者:
你如果不把新代码直接上传到master(main),而是自己新建一个远程分支,这时候你是可以push成功,但是这个分支不能合并到master,报错:
refusing to merge unrelated histories

解决

以上两个报错其实是同一类问题,就是在于本地仓库和远程仓库实际上是独立的两个仓库。假如我之前是直接clone的方式在本地建立起远程github仓库的克隆本地仓库就不会有这问题了。
我们要想办法将这两个仓库强制建立联系,我们可以打开项目位置的Terminal,给它一个pull三连:

git pull

git pull origin master

git pull origin master –allow-unrelated-histories

(其实我觉得就最后一行命令有用,意思是允许合并两个独立历史的分支)
成功之后,你再次执行push,将代码直接提交到master(main),就可以成功了。

如果上一步还有报错说你需要指定你的远程分支,那就:

git branch --set-upstream-to=origin/main master

(这里origin/main以前是origin/master,2020年10月1日之后master被main替换)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

怪力乌龟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值