前言
最近遇到一個技術團隊的 dev 環境分支錯亂,因為是多人合作大家各自提交信息,導致出現很多交叉合并記錄,讓對應 log 看起來非常混亂,難以閱讀。
舉例說明
- 假設我們有一個項目,最初develop分支有 3 個提交記錄,分別是A、B、C,如下所示
- 此時,我們創建了一個feature分支用于開發新功能,feature分支基于A提交創建,并且有D、E、F三個提交記錄,此時的分支情況如下:
- 如果不進行rebase操作,直接將feature分支合并到develop分支,Git 會自動創建一個合并提交,這樣提交歷史會變得復雜,呈現出非線性的結構,如下所示:
這種情況下,提交歷史中會出現許多交叉的合并記錄,如果同時并線的不只是一個 feature 分支,在就會并行好幾個線,非常混亂。
- 而此時如果我們現在 feature 分支上進行 rebase1操作,則會呈現如下效果。
可以看到,feature分支的提交歷史變得更加線性,基于develop分支的最新狀態進行了調整。
- 此時再將feature分支合并到develop分支,就會簡單很多,提交歷史也更加清晰、整潔,如下所示:
這樣就更加一目了然了,在進行異常的問題定位更加容易確定問題。
Tips
可以使用以下命令查看你們當前團隊的分支情況
# 可以使用
git log --graph --oneline
如果主干分支出現以下情況,就可以考慮使用 rebase 變基操作了。
在 feature 分支(開發分支)上執行 git rebase develop (主干分支)。 ??