0x00 前言
git rebase 是 Git 中一個強大而靈活的命令,它能幫助我們清理提交歷史,保持代碼庫整潔。在使用 rebase 時,有一些常見的場景和技巧,掌握它們能讓你的 Git 工作流更加順暢。
0x01本地分支變基到最新主分支
當你在本地分支上開發,并有了一些本地提交,而遠程主分支又有了新的提交時,可以通過 rebase 將這些更改應用到你的分支之上,從而避免頻繁使用 merge 導致的“合并提交”。
> git checkout feature-branch
> git fetch origin
> git rebase origin/main
這些操作將更新你的 feature-branch 并保持提交歷史的線性。
0x02 交互式變基(Interactive Rebase)
交互式變基允許你對一系列提交進行修改、合并、刪除或重新排序。這個功能對于清理提交歷史非常有用。
git rebase -i HEAD\~5
這條命令會展示最近 5 次提交,允許你根據需要進行編輯。你可以:
pick: 保留提交
squash: 合并提交
reword: 修改提交信息
0x03 修正歷史上的錯誤提交
如果發現某個歷史提交有問題(例如提交信息錯誤或代碼有問題),可以使用交互式變基來修正它。
git rebase -i
找到需要修改的提交,將其標記為 edit,然后進行相應的更改,再繼續變基。
0x04 在多人協作時謹慎使用
變基會改變提交歷史,因此不要輕易的對已經推送到公共倉庫的分支進行變基,否則會導致其他人拉取代碼時出現沖突。對于共享的歷史記錄,推薦使用 merge 而非 rebase。
總結
git rebase 是一個優化 Git 歷史的利器,可以讓你的提交歷史更加清晰有序。在正確的場景下使用它,可以提升協作效率,但也需要注意不要在公共分支上輕易變基,以免引發不必要的沖突。