这份命令表是什么
交互式变基的待办清单里,每一行都是一条指令加一个提交。默认指令是 pick,把关键字换成别的就能改变处理方式:改写信息、合并到上一条、暂停下来修改内容或者直接删除。掌握 pick、reword、edit、squash、fixup、drop 六个就够覆盖绝大多数整理需求。
进阶指令什么时候用
exec 可以在一行之后执行任意命令,适合边整理边跑测试;break 用来中途暂停,确认状态之后再继续;label 与 reset 提供跳转能力,能在清单里把一组提交挪到别处;merge 用于重建合并提交。这些属于少数场景,需要时再查手册即可,不必强行记住。
基本信息
| 适用平台 | Linux / macOS / Windows(Git 2.x) |
|---|---|
| 常用指令 | pick、reword、edit、squash、fixup、drop |
| 进阶指令 | exec、break、label、reset、merge |
| 写法 | 把某行开头的关键字改成目标指令即可 |
| 写错时 | 保存退出会报错,可重新打开编辑器修正 |
| 相关命令 | git rebase --edit-todo 重新编辑清单 |
典型使用场景
- 合并零散提交:用 squash 把多条琐碎提交并成一条
- 改写信息:用 reword 只改提交信息、不动内容
- 拆分提交:用 edit 暂停后把一次提交拆成两条
- 清理调试提交:用 drop 把临时提交从历史里去掉
- 边整理边验证:用 exec 在指定提交后自动跑测试或构建
清单示意
清单示意
pick 3f6a2b1 feat: 新增登录页
squash 8a1c4d2 fix: 修正登录页样式
reword 2b7e9f0 feat: 补充表单校验
drop 9d3c5a1 debug: 临时打印
exec npm test
git rebase --edit-todo # 中途重新编辑清单
git rebase --continue # 处理完成后继续todo 指令速查
| 指令 | 含义 | 典型场景 |
|---|---|---|
| pick | 保留该提交 | 默认动作 |
| reword | 保留改动、只改提交信息 | 修正描述 |
| edit | 重放后暂停,可改内容或拆分 | 拆分提交、补文件 |
| squash | 与前一条合并并编辑信息 | 整理零散提交 |
| fixup | 与前一条合并、丢弃本条信息 | 琐碎修补 |
| drop | 删除该提交 | 清理临时提交 |
| exec | 在该行之后执行命令 | 跑测试或构建 |
把某行开头的 pick 改成需要的指令即可;指令写错时保存退出会立刻报错,重新打开编辑器修正就行,不会损坏仓库。
drop 会连同这条提交的改动一起从历史中删除。使用前确认该内容已在别处保留,或者确实已经不需要。