sublime text 原生不支持 git 差异对比,必须依赖插件实现;gitgutter 仅显示行级增删改标记,sublime merge 集成方案支持快捷键唤起交互式 diff 视图,需单独安装 sublime merge 应用及对应插件。

Sublime Text 本身不支持 Git 差异对比
Sublime Text 是个编辑器,不是 IDE,它默认没有内置 Git diff 功能。你按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS)搜 diff 或 compare,结果基本是空的——这不是你配置错了,是它压根没这功能。
想实现“快捷键触发版本对比”,必须靠插件补足。最常用、维护活跃的是 GitGutter 和 Sublime Merge 集成方案,但二者定位不同:
-
GitGutter:只在行号旁显示增删改标记(✔️/➖/➕),不提供交互式 diff 窗口 -
Sublime Merge:官方出的独立 Git GUI 工具,和 Sublime Text 深度联动,支持快捷键唤起文件级或暂存区级 diff
用 Sublime Merge 实现一键 diff(推荐路径)
这是目前最接近“原生体验”的方案:装好后,Ctrl+Shift+H(Windows/Linux)或 Cmd+Shift+H(macOS)就能直接打开当前文件与 HEAD 的差异视图。
前提条件:
- 已安装
Sublime Merge(不是 Sublime Text!要单独下载:https://www.sublimemerge.com) - Sublime Text 中已安装插件
Sublime Merge Integration(通过 Package Control 安装) - 当前文件属于某个 Git 仓库,且有未提交变更或存在历史版本
常见问题:
- 快捷键无响应?检查
Preferences → Package Settings → Sublime Merge → Key Bindings,确认绑定没被覆盖 - 提示
subl: command not found?需在 Sublime Merge 中执行Tools → Command Palette → Install Sublime Merge Command(macOS/Linux)或运行安装器里的Add to PATH(Windows)
GitGutter 只能看“哪里变了”,不能看“变成什么样”
如果你只是想快速识别哪几行被修改过,GitGutter 足够轻量。它会在行号栏显示小图标,悬停可看简短变更摘要,但点击图标不会弹出完整 diff 窗口。
它适合的场景:
- 扫一眼当前文件改动密度,决定是否需要细看
- 配合
Ctrl+Shift+P输入GitGutter: Stage Hunk或Revert Hunk做局部暂存/丢弃
注意:GitGutter 不依赖外部工具,但要求项目根目录下有 .git,且对 submodule 内部文件支持有限;如果看到图标不更新,先运行 GitGutter: Refresh Status。
别指望用纯快捷键绕过 Git 命令行做复杂对比
比如想对比两个任意 commit 的某文件、或跨分支比较、或查看二进制文件差异——这些操作 Sublime Text 插件几乎都不覆盖。这时候快捷键只是入口,背后还是调用 git diff 或跳转到 Sublime Merge 界面。
真正省时间的地方在于:用快捷键避免手动切窗口、找命令、拼参数。但 diff 的语义逻辑(比如要不要 --no-color、是否忽略空格)仍由 Git 控制,编辑器不干预。
最容易被忽略的一点:Sublime Merge 的 diff 视图里,右键菜单有 Copy Change as Markdown 这类实用项,但它不会出现在 Sublime Text 的任何快捷键列表里——得靠鼠标发现。











