git 远程推送报错

远程推送报错

  • 我们在本地向远程仓库推送代码时,总会不可避免地出现报错
  • 我们必须要明确的一点是:推送代码,是本地向远程仓库推送
  • 远程推送代码,就是把本地的代码同步更新到远程仓库中,使远程代码与本地代码保持一致

大白话讲,就是允许本地代码比远程代码多一部分, 即远程仓库有的代码,本地仓库必须有;远程仓库没有的,本地仓库也可以有

  • 了解了这个,理解远程推送报错原因就比较轻松了
  • 引起远程推送错误的原因有很多,接下来我们会一一罗列出引起报错的各种情况,再逐个给出解决方法

本地仓库未同步

原因
  • 情景:我们希望将本地已经写好的代码,推送到远程仓库托管
  • 那我们就需要在新建仓库,而新增的仓库,我们一般都勾选添加 readMe.md文件
  • 这时,我们在本地当然是这样操作了:

git init

git remote add origin 【远程仓库地址】

git add .

git commit -m ""

git push origin master

  • 但这时,会报错:

! [rejected] master -> master (fetch first) error: fail to push some refs

  • 导致问题出现的原因是因为:远程代码里存在readMe.md文件
  • 什么意思呢?我们在前面提到过,仅允许本地代码比远程代码多一部分,而现在,远程代码存在readMe.md文件,但本地没有
  • 此时,我们把远程仓库的readMe.md文件理解为多余文件,这种远程推送报错原因归类为本地仓库未同步
  • 我们的解决方法是:在远程推送之前,先将远程仓库的多余文件拉取至本地,同步两个仓库
解决方法
  • 在执行 push 之前,执行以下代码即可:
  • 在 push 之前执行下面的代码:

git pull --rebase origin master

  •  问题成功解决,附一张图,便于理解:

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值