美文网首页Git
error: failed to push some refs

error: failed to push some refs

作者: 詹小云 | 来源:发表于2019-08-16 22:07 被阅读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
    我就不啰嗦了。嘻嘻。

    相关文章

      网友评论

        本文标题:error: failed to push some refs

        本文链接:https://www.haomeiwen.com/subject/clbwjctx.html