簡介
git rebase
是一個用于重新應用一系列提交到另一個基礎的 Git 命令。
它可以用來整合來自不同分支的更改,同時保持項目歷史的整潔。
操作流程
-
開始變基:
要開始一個變基操作,你需要指定一個基礎分支。通常,這個基礎分支是你想要將當前分支的更改應用到的分支。命令如下:git rebase [base-branch]
-
交互式變基:
如果你想要交互式地選擇哪些提交參與變基,可以使用--interactive
(或簡寫為-i
)選項。這允許你編輯、squash(壓縮)、drop(刪除)或者重新排序提交。git rebase -i [base-branch]
-
繼續變基:
如果在變基過程中遇到沖突,解決沖突后,使用以下命令繼續變基:git rebase --continue
-
取消變基:
如果在變基過程中遇到問題,可以使用以下命令取消變基操作,將分支恢復到變基之前的狀態:git rebase --abort
-
變基時的自動 stash:
如果你不希望在變基期間丟失工作,可以使用--keep-empty
選項來保留一個空的提交。git rebase --keep-empty [base-branch]
-
變基時的自動沖突解決:
使用--strategy-option=theirs
可以自動解決變基時的沖突,將公共祖先的更改保留,而丟棄當前分支的更改。git rebase --strategy-option=theirs [base-branch]
-
變基到特定提交:
如果你只想變基到某個特定的提交,可以使用--onto
選項來指定新的上游提交。git rebase --onto [new-base] [branch] [commit]
-
查看變基進度:
使用以下命令可以查看正在進行的變基操作的進度:git rebase --show-current-patch
-
自動變基:
如果你想要 Git 在 pull 請求時自動執行變基而不是合并,可以使用以下命令:git config --global pull.rebase true
最后
變基會重寫項目的歷史,所以不推薦在公共分支上執行變基操作,可能會導致其他人的工作出現問題。
一般來說,變基用于個人分支或者在合并到主分支之前整理提交歷史。