git rebase與 git合並(error: failed to push some refs to)解決方法


推薦閱讀

Pandas 數據處理(三) - Cheat Sheet 中文版 pdf
Pandas 數據處理(二) - 篩選數據
Pandas 數據處理(一) - DataFrame 與 Series

1.遇到的問題

本地有一個git倉庫,在github上新建了一個空的倉庫,但是更新了REWADME.md的信息,即在github上多了一個提交。

關聯遠程倉庫,操作順序如下:

  1. git remote add origin ****.git
  2. git push -u origin master 報錯,需要先pull
  3. git pull origin master 報錯 error: failed to push some refs to

2.解決方法

  • 第三步改為 git pull --rebase origin master

3.git merge 與 git rebase

  1. git merge 和 git rebase 都是將遠程分支與本地分支合並的一種方法,git merge 會生成一個新的節點,例如A和B都位於同一個HEAD,A提交了2個commit C1和C2,B 提交了2個commit C3和C4,git merge的結果是在C3和C4之后合並生成C5,這樣提交歷史比較清晰,但多了一個C5
  2. 假設A已經將C1和C2 push到了遠程分支,那么B 使用git rebase則會將C3和C4緩存到.git/rebase中,恢復到之前的狀態,更新C1和C2,然后再將C3和C4作為補丁應用到C2的狀態上。結果如下:
    原始狀態->C1->C2->C3'->C4',C3'和C4'為git 根據C3和C4生成的補丁,log是一條直線,而且沒有多余的C5,但是平行信息丟失。

4.git pull 與 git pull --rebase

  1. git pull = git fetch + git merge
  2. git pull --rebase = git fetch + git rebase

5.更多參考

關於merge 與 rebase 的區別與優劣可以參考stackoverflow上的回答
更多關於git 遠程操作可以參考Git遠程操作詳解


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM