Git pull with rebase: 維持樹的整潔

git rebase 示意圖
photo credit: Git-Branching-Rebasing cc

git pull --rebase,解決多人專案的無謂 merging 和醜惡的樹

前言

很醜的狀況
過去多人開發同一個分支時,我總是遇到上圖的狀況。產生的原因很簡單,我和開發同伴在同一條分支開發,他們比我早些 push 了一些 commit,等我要 push 的時候自然就無法成功了。以前我只知道 merge,所以就下 git pull origin XXXX 讓 Git 自己幫我把遠端的新 commit 抓下來然後 merge 我現在的狀態。噹噹~,超醜的樹就長出來了...

rebase

rebase 和 merge 都是 Git 中整合兩個分支的功能,兩者的差異可以閱讀 Git 官方的說明,圖文兼具很好理解。

git pull --rebase 就是讓 Git 在 pull 必要時使用 rebase 來處理遠端比本地端新的情況(預設會用 merge)。即可以免去破壞樹結構的情形。

結語

還是老話,操作試情況而定,不見得所有情況都適合使用 git pull --rebase

git

Comments

comments powered by Disqus