Git分支演進-重定基底 rebase

此爲Pro Git讀書筆記,博文圖片均轉載自書中,但本文和Pro Git均爲開放免費的,
未曾商業之用!

rebase翻譯爲“重定基底”,其和merge一樣屬於合併多個分支的操作,但是稍微有些不同。

這裏有兩個分支:
在這裏插入圖片描述

現在想合併這兩個分支,假如沒衝突,merge動作會新建一個節點,把C3和C4的改變都添加進去。

在這裏插入圖片描述

rebase既然是重定基底,那麼就是改變原來的基,其實這裏的基就是前驅節點的意思。
比如:C2的前驅節點是C1,C1是被箭頭指向的節點,代表C2C1的基礎上工作。

那麼能不能將C4直接移動到C3的後面,不創建新的節點呢?當然可以,就是用rebase

在這裏插入圖片描述

接下來再直接合並分支experimentmaster,那麼這個操作就是合併操作就是快速轉發型的了。

rebase操作我認爲一般不常用,不過其優點就是減少git log產生的日誌比較好看,就好像經過串行開發過程留下的日誌一樣,可以從上圖中看到。

但是rebase操作因爲改變了節點的基,所以不要在分支上commit了幾個節點到遠程,然後再rebase。因爲有可能你的工作會干擾別人的工作。一句兩句說不清楚,具體參見上書。但是如
果不想過於複雜,又非常想很安全的使用rebase,那就遵循一個原則:

永遠在本地使用rebase,然後清理掉被rebase的分支,這樣git歷史會相當清白

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章