版本控制
變基(rebase)
變基(rebase)就是把你分支上的提交一個個拎起來,重新「放映」到另一個分支的最新版本之上——彷彿你的工作是此刻才開始的,而不是上週。結果是一條乾淨、筆直的歷史線,中間沒有任何「合併」的轉彎。
它解決的是一個實實在在的煩惱。在你開發功能的這段時間裡,main 已經往前走了。用合併(merge),會把兩條線接起來,在歷史裡留下一個看得見的「分岔又匯合」;而變基則改寫你的提交,讓它們整整齊齊地坐在 main 的新頂端上,就好像那次分岔從未發生過。最終程式碼一樣,故事卻更俐落。
有一條規則要刺在手臂上:永遠不要對已經分享出去的提交做變基。變基會改寫歷史——它給你的提交換上全新的編號(ID)——所以對別人已經拉取(pull)過的工作動手,會把大家的副本全攪亂。在分享之前,對你自己的私有分支變基;如果工作已經公開,那就老老實實用合併。
$ git switch fix-login $ git rebase main Successfully rebased and updated refs/heads/fix-login.
把你 fix-login 的提交重放到最新的 main 之上——歷史筆直,沒有合併氣泡。
合併和變基不是對錯之分——合併如實保留發生過的一切,變基則把它理成一條直線。看團隊口味來選。
又稱
另見