用途:在 PR 堆栈的基 PR 合并或上游基分支变化后,把 rebase 级联到整个堆栈。适用场景包括:堆栈首个 PR 合并进 master、master 前进需要纳入新提交、堆栈中段 PR 被修订后其后代需要跟进。不适用于尚未发布的堆栈或尚不存在的堆栈。
前置条件:所有切片分支在本地存在(git branch --list)、远程已更新(git fetch origin)、工作区干净(git status)、Git 2.38+ 以支持 --update-refs。
主要步骤:先创建 TodoWrite 进度项;执行 git fetch origin;识别触发类型(Case A 基 PR 合并、Case B master 前进、Case C 中段修订);对 Case A/B 检出根切片后运行 git rebase --update-refs origin/master,对 Case C 从被修订切片的下一个切片运行 git rebase --update-refs <被修订分支>;冲突时用 git status 查看、git add 后 git rebase --continue,必要时 git rebase --abort;随后用 --force-with-lease 逐个推送切片分支,禁止使用 --force;Case A 下用 gh pr edit <next-pr> --base master 更新新堆栈根的基目标,并用 gh pr list 验证堆栈拓扑。
限制与提示:--update-refs 需 Git 2.38+,不可用时需从根到梢手动逐个 rebase;force-push 后 GitHub 会将评审标记为过期,需提醒评审者重新批准;建议保持切片小、频繁 rebase、避免修订已在评审中的提交。