error: failed to push some refs to

在本人想把本地的分支推送到遠(yuǎn)程倉(cāng)庫(kù)時(shí),突然出現(xiàn)了錯(cuò)誤提醒error: failed to push some refs to...。心里一咯噔,推不上去這還得了,手比腦快地就去google了一下。
然后就發(fā)現(xiàn),這個(gè)error發(fā)生的情況竟然還挺多樣化。鑒于自己搜到的頁(yè)面,都是分散的答案,所以在此做個(gè)總結(jié),以免日后又碰到這類錯(cuò)誤,爛記性又促使我花費(fèi)一樣的時(shí)間去尋找一樣的答案。

分支名不完整


emmm,這個(gè)錯(cuò)誤大概是最難發(fā)現(xiàn)的了,不是說(shuō)難度系數(shù)高,而是大家都把以本地master與遠(yuǎn)程master為例去寫(xiě)答案,于是大家會(huì)下意識(shí)忽略掉本地分支與遠(yuǎn)程分支名不一樣的情況。(也可能只有我....)

git推送的完整寫(xiě)法如下:

  git push @remoteName  @localBranch:@remoteBranch

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

但是如果本地分支與遠(yuǎn)程分支名字一樣的話,是可以簡(jiǎn)寫(xiě)的。例如本地和遠(yuǎn)程的分支名都是master:

  git push origin master

如果確認(rèn)分支名沒(méi)有錯(cuò),那就繼續(xù)往下看

沒(méi)有提交代碼


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

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

本地與遠(yuǎn)程產(chǎn)生沖突


或是有其他協(xié)作者提交了代碼,或是你之前在遠(yuǎn)程上直接做了處理。這部分有兩個(gè)處理方法,一是直接強(qiáng)覆蓋,二是先把遠(yuǎn)程的變化拉取下來(lái),解決沖突后,再一并提交。

  1. 強(qiáng)覆蓋
      git push -f origin master
    
  2. 拉取再提交
      git pull –-rebase origin master
      git push origin master
    

當(dāng)然本人是建議能第二種就第二種,暴力美學(xué)越少見(jiàn)越好。
--rebase到底是干嘛用的,為什么要加他?不知道是什么意思的時(shí)候,用起來(lái)也忐忑。所以又特意去了解了一下這個(gè)配置的作用。這部分有個(gè)博主寫(xiě)的詳細(xì)又直觀:https://blog.csdn.net/MBuger/article/details/70197532
我就不啰嗦了。嘻嘻。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容