Sublime Text 无原生Git冲突解决功能,需依赖插件或外部工具手动处理;推荐用SideBarEnhancements调用meld双栏对比,或直接使用官方Sublime Merge三栏可视化解决冲突。

Sublime Text 里没有原生的“文件冲突解决”功能
它不像 VS Code 或 JetBrains 系统那样内置 Git 冲突标记识别和一键 Accept Incoming/Ours。所谓“解决冲突”,在 Sublime 中本质是手动比对 + 手动编辑。你得靠插件或外部工具补足这一环。
核心思路只有两条:一是用 DiffMatchPatch 类插件做双栏对比(视觉辅助),二是把冲突块当普通文本手动删改(逻辑决策)。别指望自动合并 —— Sublime 不解析 Git 的 / ====== / >>>>>> branch-name 标记并提供操作按钮。
用 SideBarEnhancements + External Tools 快速打开双栏对比
这是最轻量、不依赖 Python 构建环境的方案。前提是你本地已装好支持命令行调用的 diff 工具(如 meld、vimdiff、code --diff)。
- 右键点击左侧待比对文件 →
Open With → External Tool → meld(需先在SideBarEnhancements配置中注册该命令) - 若想对比当前文件与暂存区版本,可配合
Git插件执行:Git: Diff Current File,结果会以只读视图打开,再复制内容到新标签页手动分栏 - 注意路径空格和中文路径问题:Windows 下
meld命令需加引号包裹参数,例如"C:\Program Files\Meld\meld.exe" "$file" "$file"
用 Sublime Merge 替代 Sublime Text 做冲突处理
这是官方给出的“正解”。Sublime Merge 是独立应用,但深度集成 Git,能高亮冲突块、点击切换 Current Change / Incoming Change、一键 Accept 并自动清理标记行。
关键操作链:
- 在 Sublime Merge 中打开项目 → 它自动识别未解决冲突
- 点开有冲突的文件 → 右侧面板显示三栏:
Base(共同祖先)、Local(你的修改)、Remote(对方修改) - 鼠标悬停某一行 → 出现
Accept This/Accept Other按钮;也可框选多行后右键批量操作 - 保存后,Sublime Text 中的文件会实时更新(前提是没禁用文件监听)
别试图在 Sublime Text 里装个插件模拟这个流程 —— UI 层和 Git 状态管理太重,现有插件(如 GitSavvy)只做到显示 diff,不提供结构化冲突操作。
同步修改时务必关掉 auto_save 和 atomic_save
双栏编辑或频繁切换窗口时,Sublime 默认的 atomic_save(先写临时文件再原子替换)可能造成文件句柄竞争,导致另一侧视图卡在旧内容,甚至丢失未保存变更。
进 Preferences → Settings – User,显式关闭:
{
"auto_save": false,
"atomic_save": false
}
手动按 Ctrl+S 控制保存节奏,尤其在 Sublime Merge 接收 Accept 操作后,回到 Sublime Text 要主动 Revert File 刷新(右键 → Revert File),否则看到的仍是冲突前的缓存。
真正麻烦的不是怎么比,而是比完改哪边、保留哪些上下文、要不要重跑测试 —— 这些永远得人来判。Sublime 只负责把两段文本摊开给你看清楚。










