提交代码报错 error: failed to push some refs to

在本人想把本地的分支推送到远程仓库时,突然出现了错误提醒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

本地与远程产生冲突


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

强覆盖

  git push -f origin master
拉取再提交 git pull –
-rebase origin maste git push origin master

当然本人是建议能第二种就第二种,暴力美学越少见越好。

原文地址:https://www.cnblogs.com/Rivend/p/12065669.html