git中merge和rebase的區別

2021-10-05 13:18:21 字數 1062 閱讀 9701

最開始實習的時候是使用svn,之後正式工作就一直在使用git,這樣算起來,使用git也有兩年的時間了。以前帶我的同事,讓我在拉**的時候要我使用git pull --rebase,一直很納悶為什麼要那樣做,後來遇到拉**的時候有許多衝突要解決,然後去查詢資料,才了解到其中的一些事情。今天分享一下,順便自己也梳理一下。

git pull

git pull 是 git fetch + git merge fetch_head 的縮寫。所以,預設情況下,git pull就是先fetch,然後執行merge 操作,如果加–rebase 引數,就是使用git rebase 代替git merge。

merge 和 rebase

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操作會更好一點。這樣可以線性的看到每一次提交,並且沒有增加提交節點。

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

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

git合併之 merge和rebase

合併有兩種方法 git rebase和git merge 優先用 rebase!區別 git checkout dev git merge master 或者,你也可以把它們壓縮在一行裡。git merge master dev git checkout dev git rebase master ...

Git 配置merge工具

git merge的常用工具有kdiff3和p4merge。下面就windows系統和os x系統分別說明如果配置這兩種工具。建立乙個merge包裝指令碼,名字叫作extmerge,讓它帶引數呼叫p4merge二進位制檔案 sudo vim usr local bin extmerge內容為 bin...

git 撤銷所有 merge

無意間切換到了乙個別人的分支並且merge了 git merge 看到大量的 在合併,我覺得還是把這個分支回滾比較好.git status 位於分支 您的分支領先 origin 共 218 個提交。使用 git push 來發布您的本地提交 200多的個提交說明這個分支閒置很久了,為避免挨打 萬一是...