用途:在无法使用交互式编辑器的环境中,以脚本方式执行 Git 交互式 rebase 操作,包括重排、拆分、丢弃、压缩(squash/fixup)与修改(amend)非顶层提交。
主要能力:利用 GIT_SEQUENCE_EDITOR 指向一个会覆盖 todo 文件的命令(如 cp)来替换默认 todo;也可用 --exec 在每个 pick 之后自动执行命令,配合 GIT_SEQUENCE_EDITOR=: 实现批量修改作者邮箱或提交信息。支持提取默认 todo、重排提交、drop 提交、拆分提交(edit + git reset HEAD~1 + git add -p 或补丁方式)等操作。
必要用法:任何 rebase 前先创建备份分支:git branch backup-before-rebase HEAD。rebase 成功后不要自动删除备份分支,除非用户明确要求自动清理,否则应先询问用户。提取默认 todo 可用:GIT_SEQUENCE_EDITOR='cp $1 /tmp/default-todo && false' git rebase -i <base>;执行准备好的 todo 用:GIT_SEQUENCE_EDITOR="cp /tmp/prepared-todo" git rebase -i <base>。批量修改作者邮箱示例:GIT_SEQUENCE_EDITOR=: git rebase -i <base> --exec '...'。
验证:rebase 后用 git diff backup-before-rebase HEAD --stat 检查树内容是否一致(无输出表示一致)。
限制与注意:不要在 todo 中使用 reword,它会打开交互式编辑器,应改用 edit 加 git commit --amend -m;rebase 后哈希会变化,todo 文件中的旧哈希会失效,需重新生成;git add -p 在上下文重叠时可能合并 hunk,复杂场景建议改用补丁方式拆分;删除备份分支前应询问用户。具体平台、收费与价格信息暂未提供。