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,不提供结构化冲突操作。