善用 Rebase 的 Git 工作流程

善用 Rebase 的 Git 工作流程

前言 #

簡單介紹了 Merge 和 Rebase 的差異,並且以合併後的結果線圖來作比較。
在多人協作的專案場景,能好好善用 Rebase 的話,絕對能省去不少麻煩事!

分支的合併 #

完成作業的 Topic 分支,最終都會合併到 Integration 分支。
合併分支有兩種方法:使用 mergerebase
兩者都是合併歷史記錄,但是根據使用的方法合併後的分支歷史記錄有很大的差別。

Merge #

修改內容的歷史記錄會維持原狀,但是合併後的歷史紀錄會變得更複雜。

Git 在做 merge 時,會自動判斷現在的狀況是否適合是使用 fast-forward,或是我們可以透過加上 --ff 或是 --no-ff 來強制設定是否使用 fast-forward,差別如下:

--no-ff 會多出一個 merge commit,而 --ff 會直接視為 master 分支上多出的 commit。
可視需求決定要使用哪種。

Rebase #

修改內容的歷史記錄會接在要合併的分支後面,合併後的歷史記錄會比較清楚簡單,但是,會比使用 merge 更容易發生衝突。

多人協作的 Git 工作流程 #

具體來說,如果我們要將 feature branch 合併進 master

原理其實並不難,但是在多人協作的專案開發時,如果能善用 Rebase 的話,有時候能幫助你省去一些意想不到的麻煩!

分享文章