首页/开发/Git 与协作速查/交互式变基 todo 命令表
合并变基与冲突71 条

交互式变基 todo 命令表

todo 清单每行可用的指令:pick、reword、edit、squash、fixup、drop、exec、break、label、reset、merge;掌握其中常用几个即可覆盖九成场景。

Git 与协作速查开发更新于 2026-10-13

这份命令表是什么

交互式变基的待办清单里,每一行都是一条指令加一个提交。默认指令是 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 会连同这条提交的改动一起从历史中删除。使用前确认该内容已在别处保留,或者确实已经不需要。

易错点

  • squash 与 fixup 都作用于前一条条目,调整顺序后要重新检查相邻关系
  • drop 会连同改动一起删除,用前确认内容已在他处保留或确实不需要
  • 把 pick 改成 edit 后忘记 add 并 --continue,变基会一直停在那里等待
  • 清单顺序就是执行顺序,随意拖动会让 squash 合并到并非预期的提交上

数据来源与参考

  • Git 官方文档:git-rebase(Interactive Mode / todo list)
  • Pro Git 2nd Edition · 7.6 重写历史
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌