天天看點

git pull --rebase是做什麼的?

git pull

git pull = git fetch + git merge FETCH_HEAD 
git pull --rebase =  git fetch + git rebase FETCH_HEAD 
           

merge 和 rebase

現在我們有這樣的兩個分支,test和master,送出如下:

D---E test
      /
 A---B---C---F--- master
           

在master執行git merge test,然後會得到如下結果:

D--------E
      /          \
 A---B---C---F----G---   test, master
           

在master執行git rebase test,然後得到如下結果:

A---B---D---E---C‘---F‘---   test, master
           

merge操作會生成一個新的節點,之前的送出分開顯示。

而rebase操作不會生成新的節點,是将兩個分支融合成一個線性的送出。

rebase好處

想要更好的送出樹,使用rebase操作會更好一點。

這樣可以線性的看到每一次送出,并且沒有增加送出節點。

merge 操作遇到沖突的時候,目前merge不能繼續進行下去。手動修改沖突内容後,add 修改,commit 就可以了。

而rebase 操作的話,會中斷rebase,同時會提示去解決沖突。

解決沖突後,将修改add後執行git rebase –continue繼續操作,或者git rebase –skip忽略沖突。

轉載于GabrielPanda

git