git rebase objectBranch
更換合併分支的'建立此分支時的基礎節點'指向將要被合併的分支的最後一個節點
git checkout -b newBranch
在新分支建立的同時切換branch指向新的分支
git merge objectBranch
將當前分支與目標分支合併
複製程式碼
網上的翻譯有很多,上面是自己的一些理解。
首先,建立下面的分支樹:
依次建立並新增到庫1.txt和2.txt,形成兩條記錄;使用git checkout -b "branch1"
建立新的分支節點,此時,HEAD同時指向master和branch1,主分支和分支1有一個共同的基點:
然後,使用git checkout "master"
,讓HEAD指向主分支樹,我們先建立主分支上的記錄一二三四,一番提交後:
調整HEAD指標,接下來建立分支一上的記錄:
一般到了這裡,我們會選擇調整HEAD指向master主分支,再git merge branch1
,來將分支一合併到主分支上:
此時的HEAD指向主分支和分支一的下一個節點(都是節點七),到這裡我們就實現了開頭提到的效果,但是這樣會讓我們的提交記錄混亂(也有說法這樣會保證提交記錄的真實性):
為了讓節點樹更加美觀,我們可使用git rabase
來變基,讓分支一上的基礎節點認同主分支上的最後一個節點(使用之前先回退之前的操作)。
此時的節點樹狀態:
最後,我們切換到主分支上並將分支一合併,我們的提交記錄就變得更加清晰了。