gitsavvy 是将 git 命令行逻辑原样移植到 sublime 的交互层,仅在以含 .git/ 的文件夹为根打开时激活功能,依赖正确 git 路径配置、严格区分大小写的快捷键、手动处理上游分支与冲突,不隐藏底层 git 行为。

GitSavvy 不是“增强 Git 功能”的插件,它是把 Git 命令行逻辑原样搬进 Sublime 的交互层——用对了很顺手,用错一步就卡死在 git: command not found 或状态面板空白。
GitSavvy 装完为啥命令面板搜不到 Git: Status?
不是插件没装好,是 Sublime 没识别到 Git 仓库上下文。它只在「以文件夹为根打开、且该文件夹内含 .git/ 目录」时才激活所有功能。
- 单个文件打开(比如双击
src/main.py)→ 插件完全静默,Git: Status灰显或不出现 - 子目录打开(比如打开
project/src/,但.git/在project/)→ 同样无效,找不到仓库 - 必须用
File → Open Folder…选中含.git/的最外层项目目录 - 终端里能跑
git --version,但 Sublime 里报"git" is not recognized→ 大概率是 GUI 启动没继承 shell PATH(macOS/Linux 尤其常见),需在GitSavvy: Settings – User里硬写路径,例如:"git_binary": "/opt/homebrew/bin/git"
状态面板里文件不显示、暂存键(a)没反应?
GitSavvy 的状态视图(Git: Status)默认只列出「有变更」的文件,未跟踪(untracked)和已修改(modified)文件都列,但如果你刚 clone 完仓库、还没改任何东西,面板就是空的——这正常,不是 bug。
- 按
Ctrl+Shift+G(Win/Linux)或Cmd+Shift+G(macOS)打开状态面板后,光标必须落在某文件名上才能触发a(add)、u(unstage)、c(commit)等快捷键 - 想暂存整行修改而非整个文件?得先按
s进入行级暂存模式,再用方向键选中变更块,回车确认 - 面板里灰色文件 = 未暂存,绿色 = 已暂存;但颜色依赖主题,Monokai 下可能不明显,建议开
diff_view_word_wrap配置提升可读性 - 如果按
a没反应,检查是否误按了 Caps Lock —— GitSavvy 的快捷键区分大小写,A和a是两个操作
为什么 push 总失败,提示 “No upstream branch”?
GitSavvy 不会自动帮你设 upstream,它严格复刻 git push 行为:首次推送必须明确指定远程分支,否则就报错。
- 别直接按
Git: Push,先运行Git: Push with Options - 勾选
set upstream,再选origin和当前分支名(如main) - 之后再用普通
Git: Push就能一键推了 - 协同开发时,别人 rebase 过历史,你
Git: Pull后发现状态栏分支名还在但文件没更新?那是 pull 没成功,得手动Git: Fetch+Git: Merge,或者直接Git: Pull with Rebase - 如果 push 卡在认证环节,说明 SSH 密钥没加载进 agent,GitSavvy 不处理这个,得终端跑
ssh-add -l检查,不行就ssh-add ~/.ssh/id_rsa
合并冲突时能不能像 VS Code 那样点选接受?
不能。GitSavvy 只展示冲突标记(),不提供可视化三路合并界面。它把解决权完全交还给用户:你得手动删标记、留代码、保存文件,再 <code>Git: Add File 暂存。
- 大文件或多冲突时,Sublime 自带的
Find All(Ctrl+Alt+G)搜很容易卡顿,建议先终端执行 <code>git status --short锁定冲突文件范围,只打开这几个 -
.gitattributes里配的merge=ours等策略,GitSavvy 完全无视,它不解析这些配置 - 真要图形化解决冲突,别硬扛——用 Sublime HQ 官方出的
SublimeMerge,独立应用,免费版无功能限制,支持点选接受 base/head/remote 任意一边,解决完自动git add
GitSavvy 的复杂点不在功能多,而在它拒绝做任何“隐藏”:每个操作背后都是真实 Git 命令,状态栏显示的分支名、底部弹出的错误信息、甚至你按错一个键导致的暂存错乱,全是你和 Git 本身的对话。忽略这点,就容易把环境问题当成插件 bug。











