Sublime Text 无内置 Git Diff 功能,需依赖插件:GitGutter 仅支持行级变更标记,SublimeGit 才提供真正的 diff 面板,支持暂存/工作区切换、行内高亮与跳转原文件。

Sublime Text 里没有内置 Git Diff 功能
Sublime Text 本身不提供 git diff 视图或内联差异高亮,必须依赖插件。官方 Package Control 中最常用、维护较活跃的是 GitGutter 和 SublimeGit,但二者定位不同:前者只做「行级变更标记」,后者才真正支持「打开 diff 面板」查看内容差异。
用 GitGutter 显示修改行(轻量级方案)
适合日常快速识别改了哪几行,不关心具体改了什么内容。
- 安装后自动扫描当前文件是否在 Git 仓库中,左侧边栏显示
+(新增)、-(删除)、→(修改)图标 - 默认不显示 staging/unstaged 差异区分,如需区分,需手动设置
"show_markers_on_untracked": false并启用"live_mode": true - 不支持点击跳转到 diff 内容,也不能复制变更块;右键菜单无「Show Diff」选项
- 性能影响小,适合大仓库;但无法替代
git diff --no-color的语义级对比
用 SublimeGit 打开真正的 diff 面板
这是目前 Sublime Text 中唯一能模拟 git diff 命令输出效果的方案,支持暂存区/工作区切换、行内高亮、跳转原文件。
- 安装后按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS),输入Git: Diff回车即可打开当前文件的差异视图 - 默认显示 unstaged 变更;想看 staged 内容,需先执行
Git: Stage Hunk或在命令面板选Git: Diff Staged - diff 面板是只读的,但支持
Ctrl+Click(或Cmd+Click)跳转到原文件对应行;也支持双击某一行 hunk 应用该块变更(需开启"allow_hunk_apply": true) - 注意:首次运行会尝试调用系统
git命令,若报错Git not found,需在 SublimeGit 设置中填入完整路径,例如"git_binary": "/usr/local/bin/git"
常见失败点和绕过方式
不是装了插件就一定能用,几个关键卡点经常被忽略:
-
GitGutter不生效?检查文件是否在 Git 仓库根目录下——它只对.git目录上层的文件起作用,子模块或嵌套仓库需额外配置"git_binary" -
SublimeGit执行Git: Diff后空白?先确认当前文件已git add过(否则 unstaged diff 为空),或尝试Git: Status看是否识别出仓库 - diff 中中文乱码?SublimeGit 默认用 UTF-8 解码,若仓库提交时用了 GBK,需在用户设置中加
"fallback_encoding": "GBK" - 不想全局启用?两个插件都支持按项目禁用:在项目根目录的
.sublime-project文件中添加"settings": {"git_gutter_enabled": false}或对应键名
真正需要对比变更内容时,SublimeGit 是唯一可行路径;但它的 diff 面板不支持语法着色、不能保存为文件、也没有两栏并排模式——这些得切回终端或用专用 Git GUI 工具补足。

















