真能可靠处理冲突的只有 Sublime Merge 这个独立应用;Diffy 仅支持两路文本比对,不接收 $BASE/$LOCAL/$REMOTE 参数,无法用于 Git 三路合并。

Sublime Text 本身不支持 Git 三路合并,所有“解决冲突”的插件都只是辅助查看或手动编辑,**真能可靠处理冲突的只有 Sublime Merge 这个独立应用**。别在插件上浪费时间试错——配错一次,下次遇到冲突还是卡住。
Diffy 只能对比,不能解决冲突
很多人装了 Diffy 就以为能处理冲突,结果右键只有 Compare with Tab。它只做两路文本比对,不接收 $BASE/$LOCAL/$REMOTE 参数,Git 的 git mergetool 根本调不动它。
- 适合场景:快速看两个文件/分支差异,比如确认某次提交改了哪几行
- 不适用场景:含
- 常见错误:用
Find All搜后手动删标记,但漏掉嵌套冲突或格式错乱,Git 仍报 <code>both modified - 性能隐患:大文件里搜
容易卡死,尤其有 50+ 个冲突块时
GitSavvy 能驱动流程,但不提供可视化合并
GitSavvy 是 Sublime Text 中最完整的 Git 插件,但它本质是命令行封装器,所有操作最终调用系统 git,**不带三方视图、不解析冲突语义、不自动跳转冲突块**。
- 必须手动配置
git_path,否则git: status直接报错;终端能跑git --version≠ Sublime 能继承 PATH - 它支持
git: merge,但遇到冲突只会停在终端提示,不会弹窗——你得自己敲git mergetool - 冲突后能用
git: add file暂存,但前提是:你已手动清理完所有标记并保存文件 - 没装
Sublime Merge时,它 fallback 到 vimdiff 或 meld,不是你想要的图形界面
Sublime Merge 是唯一靠谱方案,但配置必须全对
官网下载安装 Sublime Merge(不是插件!不是 sublimerge!),再按这三步配,缺一不可:
OpenClaw 技能 — 给定一个 GitHub 仓库 URL,自动解析出 owner/repo 名称,发现其中的 YAML/properties 配置文件及其配对的中文字段说明;在 `workspace/{repo}/` 目录下按同步日期(格式为 `YYYY-MM-DD`)创建时间戳子目录;写入 `.openclaw-config-state.json` 状态文件。每次用户提问前,先比对远程仓库当前 ref(如 `main` 或 `master`)的最新提交 SHA 与本地状态文件中记录的 SHA:
- 设工具名:
git config --global merge.tool sublime_merge(注意不是smerge) - 配命令(macOS 示例,路径含空格必须转义):
git config --global mergetool.sublime_merge.cmd '/Applications/Sublime\ Merge.app/Contents/SharedSupport/bin/smerge "merge" "$LOCAL" "$REMOTE" "$BASE" "$MERGED" --wait' - 关信任提示:
git config --global mergetool.trustPrompt false(不加这句,git mergetool会卡在Hit return to start merge tool)
验证是否生效:smerge --version 有输出 + git mergetool 弹出四栏界面才算通。别信“装了就能用”——90% 失败都在第三步漏掉。
Sublime Merge 保存后,Git 仍提示未解决?
点 Cmd+S 保存文件 ≠ Git 认为冲突已解决。Sublime Merge 只负责写回磁盘,Git 还需要你显式 git add <filename></filename> 把文件标记为“已处理”。
- 多个冲突文件时,最容易只关掉 Sublime Merge 窗口,忘了回终端执行
git add - 执行
git status,如果文件还在Unmerged paths下,状态是both modified,就说明没加进去 - 必须全部
git add完,才能git commit或git merge --continue
真正卡住人的地方,从来不是看不懂哪边改了什么,而是配置没走通就换工具,或者以为点完保存就万事大吉。

















