Git

error: failed to push some refs

2019-08-16  本文已影响0人  詹小云

在本人想把本地的分支推送到远程仓库时,突然出现了错误提醒error: failed to push some refs to...。心里一咯噔,推不上去这还得了,手比脑快地就去google了一下。
然后就发现,这个error发生的情况竟然还挺多样化。鉴于自己搜到的页面,都是分散的答案,所以在此做个总结,以免日后又碰到这类错误,烂记性又促使我花费一样的时间去寻找一样的答案。

分支名不完整


emmm,这个错误大概是最难发现的了,不是说难度系数高,而是大家都把以本地master与远程master为例去写答案,于是大家会下意识忽略掉本地分支与远程分支名不一样的情况。(也可能这个大家只包含了我....)

git推送的完整写法如下:

  git push @remoteName  @localBranch:@remoteBranch

  // eg.remoteName:origin  localBranch:ceshi  remoteBranch:test
  git push origin ceshi:test

但是如果本地分支与远程分支名字一样的话,是可以简写的。例如本地和远程的分支名都是master:

  git push origin master

如果确认分支名没有错,那就继续往下看

没有提交代码


可以用 git status查看是否忘了把代码提交上去了。若是忘了,提交了就行。

  git add .
  git commit -m "This is a new commit"
  git push origin master

本地与远程产生冲突


或是有其他协作者提交了代码,或是你之前在远程上直接做了处理。这部分有两个处理方法,一是直接强覆盖,二是先把远程的变化拉取下来,解决冲突后,再一并提交。

  1. 强覆盖
      git push -f origin master
    
  2. 拉取再提交
      git pull –-rebase origin maste
      git push origin master
    

当然本人是建议能第二种就第二种,暴力美学越少见越好。
--rebase到底是干嘛用的,为什么要加他?不知道是什么意思的时候,用起来也忐忑。所以又特意去了解了一下这个配置的作用。这部分有个博主写的详细又直观:https://blog.csdn.net/MBuger/article/details/70197532
我就不啰嗦了。嘻嘻。

上一篇下一篇

猜你喜欢

热点阅读