git merge 和 rebase 區別


git pull  超級不推薦使用git pull 有坑,謹慎使用,pull底層是merge

git pull 是 git fetch + git merge FETCH_HEAD 的縮寫。所以,默認情況下,git pull就是先fetch,然后執行merge 操作,如果加 —rebase 參數,就是使用git rebase 代替git merge。

merge 和 rebase

merge 是合並的意思,rebase是復位基底的意思。

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

1
2
3

D---E test

/

A---B---C---F master

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

1
2
3

D--------E

/ \

A---B---C---F----G test, master

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

1

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

可以看到,merge操作會生成一個新的節點,之前的提交分開顯示。而rebase操作不會生成新的節點,是將兩個分支融合成一個線性的提交。

其他內容放這里

通過上面可以看到,想要更好的提交樹,使用rebase操作會更好一點。這樣可以線性的看到每一次提交,並且沒有增加提交節點。

在我們操作過程中。merge 操作遇到沖突的時候,當前merge不能繼續進行下去。手動修改沖突內容后,add 修改,commit 就可以了。

而rebase 操作的話,會中斷rebase,同時會提示去解決沖突。解決沖突后,將修改add后執行git rebase —continue繼續操作,或者git rebase —skip忽略沖突。


免責聲明!

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



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