gitgutter默认不标记修改行,仅标新增(+)和删除(-);需启用"live_mode": true和"show_gitgutter_in_modified_tabs": true并重启sublime,修改行才显示橙色小点。

GitGutter 能在行号旁显示变更,但默认只标新增(+)和删除(-),不标修改(即内容变但行数不变);要看到修改行的标记(橙色点),必须手动开启两个配置项,且需满足 Git 仓库识别、文件已保存、git 命令可用三个前提。
为什么修改行没标记,只有新增/删除有图标?
这是 GitGutter 的默认行为,不是 bug。它只对比工作区与暂存区(index),而“修改”在 Git 语义中属于“已暂存变更”的一部分——但插件默认不主动高亮这类行,除非显式启用相关选项。
-
show_gitgutter_in_modified_tabs控制是否对“已修改但未保存”的标签页启用变更检测 -
live_mode决定是否实时监听文件变化(设为true才能捕获未保存时的修改) - 即使都开启,修改行也不会显示竖线,只在行号旁加一个橙色小点(
~标记),颜色受当前 UI 主题影响,部分主题可能让该点极淡甚至不可见
如何让 GitGutter 正确识别你的 Git 仓库?
GitGutter 不扫描磁盘找 .git,它只认当前文件路径向上最近的、含 .git 目录的父级路径。如果没反应,大概率是项目结构或 Sublime 打开方式不对。
- 用终端进入该文件所在目录,运行
git rev-parse --git-dir;若报错,说明此处不是 Git 工作树根目录 - Sublime 中通过 Project → Add Folder to Project 添加的必须是含
.git文件夹的那层目录,不能只加子文件夹 - 状态栏右下角应显示分支名(如
main或dev),若显示plain text或空白,说明 Sublime 没识别出 Git 上下文或文件类型
Windows 下 git_binary 设置常见坑
路径含空格或中文时,GitGutter 启动 git 会失败,报错类似 git not found,其实 git 命令本身存在,只是插件调用时路径转义出错。
- 不要用
%USERPROFILE%或环境变量,GitGutter 不解析它们 - 正确写法示例:
"git_binary": "C:\Program Files\Git\cmd\git.exe"(注意双反斜杠) - Scoop 或 Chocolatey 安装的 git,路径通常是
C:\Users\xxx\scoop\shims\git.exe,必须填完整绝对路径 - 改完设置后必须完全退出 Sublime Text 再重启,仅重载插件无效
图标错位、全灰、或悬停无 diff 弹窗?
90% 是主题兼容问题。GitGutter 依赖主题中定义的 gutter 区域样式和作用域(如 markup.changed.git_gutter),很多自定义主题没适配这些 scope。
- 先切换回 Default.sublime-theme 测试是否恢复
- 禁用其他 gutter 类插件(如
BracketHighlighter、SublimeLinter),排除渲染冲突 - 悬停无弹窗通常因
diff_popup功能被禁用,检查设置中是否有"enable_diff_popup": false - 不建议调
gutter_size来“修复”错位,这常导致更糟的布局问题
真正麻烦的不是配置本身,而是 GitGutter 对“修改行”的标记极其依赖主题渲染能力和用户对 Git 三棵树(working tree / index / HEAD)的理解;一旦主题缺 scope 或暂存区为空,橙色点就彻底消失,且没有任何提示。











