git merge和git rebase的前世今生

2021-09-26 02:55:03 字數 1117 閱讀 7506

相信你也和我一樣習慣了merge一下,什麼時候有rebase這個東東的?下面和我一起來探尋一下這兩者的區別吧。

我並沒有建議你使用git merge還是git rebase,這需要你自己做權衡。

變基怎麼用

參考鏈結

為什麼你應該停止使用git rebase

將另乙個分支的所有修改合併到指定的目標分支,有衝突的需要解決完衝突,才能再次合併。

什麼時候用變基(rebase)

變基(rebase)的優缺點

變基(rebase)怎麼用

相信掌握了以上三個問題的你,一定就清楚mergerebase的區別了吧。

參考鏈結內容說的是當本地開發某個分支的時候另在此分支基礎上又新建分支就有了變基的用武之地,這兩個分支都是本地的情況。

在開發分支執行:

$ git rebase master feature
在主分支執行:

$ git checkout master

$ git merge feature

其實變基就相當於,在我們原先基於源分支第a次提交基礎上建立的新分支,在新分支上再拉取一次源分支最新的提交,並將我們在新分支上的所有提交打包成乙個補丁,附到新提交上,之前的新分支更改拋棄掉,這樣我們的提交歷史看上去就會是一條直線。

優點至少在本地多個分支合併變基的線看上去是一條整齊的直線。

缺點變基操作會拋棄一些已有的**,但是當另乙個開發者是基於這些已有**新建的分支,那麼當執行完變基後,另乙個開發者再推送,提交歷史又會變得一團糟,這就違背了我們期望提交歷史清晰的初衷。

感謝[1] git官方文件 .6 git 分支 - 分支的變基

[2] git官方文件 分支的合併

git merge和rebase的區別

git merge 會生成乙個新得合併節點,而rebase不會 比如 d e test a b c f master 使用merge合併 d e a b c f g test,master 而使用rebase則 a b d e c f test,master 使用git pull時預設是merge,...

git merge和rebase的區別

一直以來都以為rebase是合併衝突的一種手段,和merge一樣的,有哪個都行。今天才決定把他們搞懂了。我是有多麼的懶。git merge 會生成乙個新得合併節點,而rebase不會 d e test a b c f master 使用merge合併後 d e a b c f g test,mast...

git merge簡易教程和QA

假定你現在需要將master的分支merge到自己的本地分支yousa master 且自己的分支是從master checkout出來的 git fetch 取下本分支以及相關分支的更新 git checkout yousa master 切換到yousa master分支 git pull 更新...