变基中断了怎么办
变基过程中遇到冲突,或清单里写了 edit 需要停下来修改,流程都会暂停等待处理。此时有三个出口:解决冲突后继续推进、跳过当前这条提交、或者整体放弃回到变基之前。判断依据是 git status 的首行提示,它会写明当前正在变基并列出可用的命令。
三个出口怎么选
continue 用于「冲突已解决、想按原计划走完」;skip 用于「这条提交的内容已经不需要了」,它会把当前这条提交整体丢弃;abort 用于「这次变基整体做不下去了」,它把分支恢复到开始之前的状态。前两个会改变历史内容,abort 只是回滚,风险相对低。
基本信息
| 适用平台 | Linux / macOS / Windows(Git 2.x) |
|---|---|
| 继续 | git rebase --continue |
| 跳过 | git rebase --skip,丢弃当前这条提交 |
| 放弃 | git rebase --abort,恢复到变基开始前 |
| 常见暂停场景 | 冲突未解决,或清单里使用了 edit |
| 状态识别 | git status 的首行提示当前正在变基 |
典型使用场景
- 冲突后推进:解决并 add 之后继续重放剩余提交
- 跳过空提交:某条提交的改动已被上游包含,结果为空
- 整体放弃:发现基点选错或范围失控时回退
- edit 场景:暂停修改内容或拆分提交,完成后继续
- 交接排查:把卡在变基中的仓库状态说明清楚再交给同事
常用示例
常用示例
git status # 查看当前处于什么操作
git add <已解决文件> # 标记该文件已解决
git rebase --continue # 继续推进剩余的提交
git rebase --skip # 丢弃当前这条提交并继续
git rebase --abort # 整体放弃,恢复原状
git log --oneline --graph -8 # 完成后核对历史形态三个出口对照
| 命令 | 作用 | 代价 |
|---|---|---|
| --continue | 按原计划继续重放 | 需要先解决冲突并 add |
| --skip | 丢弃当前这条提交 | 该提交内容不再进入历史 |
| --abort | 回到变基开始前 | 期间的解决成果全部丢失 |
| --edit-todo | 重新编辑待办清单 | 不结束变基流程 |
edit 暂停时,改完内容要先 git add,再执行 --continue;不确定自己处在什么状态,就执行 git status 看首行提示。
--skip 会静默丢弃当前这条提交的内容,只在确认该提交已经被其它方式包含时才使用,否则会丢掉改动。