git merge & git rebase

April發表於2018-01-18

git merge 合併分支(保留歷史提交)

1.切換到我的分支
2.合併develop分支到我的分支

git checkout mybranch
git merge develop

合併後git log檢視mybranch,所有歷史提交都在。
提交比較完整的保留,如果你的提交比較雜亂,這就成了缺點。而且merge會引入一個合併提交。

git rebase 變基&合併分支(丟棄原始提交,形成線性提交歷史)

1.切換到我的分支
2.合併develop分支到我的分支

git checkout mybranch
git rebase develop

合併後git log檢視mybranch,提交歷史是以最新develop分支為基礎的,mybranch自己的提交記錄在新基礎的後方。即線性提交。
個人理解 rebase可顧名思義,重置基礎。意識是以develop為最新基礎,merge上mybranch的修改。

互動式的rebase

引數:-i

git checkout feature
git rebase -i master

Rebase的黃金法則

1.不能在公共分支上使用它。比如master,develop。
2.通常用在你自己的獨享分支上。

總結

1.想要儲存專案完整的歷史,並且避免重寫公共分支上的commit,使用git merge

2.想要一個乾淨的、線性的提交歷史,沒有不必要的合併提交,使用 git rebase

相關文章