GitSavvy不提供交互式rebase图形界面,仅支持非交互式线性变基;需通过终端执行git rebase -i,并配置Sublime Merge为core.editor以图形化编辑todo列表。

GitSavvy 本身不提供 Interactive Rebase 图形界面
别在命令面板里反复搜 interactive rebase 或 rebase -i —— GitSavvy 没有封装这个操作的 UI 层。它的 git: rebase 命令直调 git rebase,但只支持非交互式(即无 -i 参数)的线性变基,比如 git rebase develop 这种。真要改 commit 顺序、编辑/压缩/squash/drop 提交,必须走终端或外部编辑器。
想图形化操作 todo 列表?得靠 Sublime Merge 配合 core.editor
Sublime Merge 虽然 UI 上没 “Interactive Rebase” 按钮,但它能作为 core.editor 打开 rebase todo 文件。操作路径是:
- 终端执行
git rebase -i HEAD~3(或其他范围) - 若报错说找不到编辑器,先运行
git config --global core.editor "smerge --wait" - 确保已安装 Sublime Merge(不是 Sublime Text),且
smerge在系统 PATH 中 - 再次触发
git rebase -i,就会弹出 Sublime Merge 的 todo 编辑窗口,支持勾选、拖拽、右键菜单操作
注意:Sublime Text + GitSavvy 无法替代这一步 —— 它们不共享编辑器协议,也不能接管 git 的交互式编辑流程。
GitSavvy 的 git: rebase 容易误用的三个前提
哪怕只是用 GitSavvy 做普通 rebase(无 -i),也常因状态不对导致失败或丢 commit:
- 当前分支必须干净:
git status显示无 untracked / modified / staged 文件,否则命令会拒绝执行或中途卡住 - 目标基底分支(如
develop)必须本地存在且最新:先手动git checkout develop && git pull,再切回你的 feature 分支 - rebase 过程中一旦出现冲突,GitSavvy 不会高亮提示,也不会暂停;你得立刻去终端看
git status,手动git add+git rebase --continue,否则后续操作全失效
替代方案:用 GitSavvy + 终端组合完成安全衍合
最稳的图形化辅助路径其实是“GitSavvy 看状态 + 终端做 rebase”:
- 在 GitSavvy 的
git: status面板确认当前分支和暂存区干净 - 用
git: log查看提交历史,数清要 rebase 的 commit 数(比如HEAD~5) - 打开终端,cd 到项目根目录,执行
git rebase -i origin/develop(别用develop,用远程跟踪分支更安全) - 提交信息被重写后,用 GitSavvy 的
git: log刷新查看新历史,用git: diff核对关键变更是否保留
真正容易被忽略的是:rebase 后所有 commit hash 都变了,如果之前推过旧版本到远程,必须用 git push --force-with-lease 覆盖,而 GitSavvy 的 git: push 默认不带 force 选项 —— 这步永远得回终端敲。


















