前言
協作最重要的合併功能,不外乎 merge 或 rebase
這一篇我們專注於 rebase
說明
rebase 的使用情境就是如果我們很努力的在 dev branch 開發,
但大家一起合作的 master 可能有很多的更新 (新的 merge),
我們也想要同步進行更新一些新的 change,就需要 rebase
效果
同上面的說明,大家一起做的 master,與你在 a 時間點切出去的 dev
後來 master 又更新了很多 bcd…
我也想要 bcd,且維持我繼續開發的狀態,這時候就需要 rebase,
結果大概如下 (注意只發生在 dev)
實際範例
step 1. 切到 dev
git checkout <your_dev_branch>
step 2. git rebase master,表示拉 master (從我們切出去後的所有更新)
git rebase <your_master_branch>
step 3-1. (運氣好就不用) 看有沒有 conflict 需要解
這裡提供一個要解 conflict 的範例
- dev 上: 123456
- master 上:123abc
因為不知道要怎麼樣的順序自動合併,勢必要解 conflict
基本上調整確定是自己想要的樣子就好了
step 3-2. 解完 conflict 後,記得 git rebase –continue
表示告訴 rebase 我解完了請繼續
- 這裡可能有的步驟
git add <confilct_file>
git rebase --continue
就解完了,就會變成下面這樣圖的狀態
(目前自己在最後一個 commit,master 的所有更新都合併到 dev branch)。


