VS Code不保存历史冲突记录,仅实时标记当前未解决的冲突:在源代码管理面板(Ctrl+Shift+G)的“MERGE CHANGES”区域查看带⚠️标识的冲突文件,点击后默认以三栏合并编辑器显示Current、Incoming和Result内容,支持一键接受或手动整合。

VS Code 本身不保存或显示“Git冲突记录”——它只在冲突发生时实时标记当前未解决的冲突文件和块,不会回溯历史冲突。所谓“查看冲突记录”,实际是指定位、识别并进入正在发生的冲突状态。
冲突文件在哪看?源代码管理面板里的 Conflicted 分组
执行 git merge 或 git pull 触发冲突后,VS Code 会立刻在左侧“源代码管理”视图(Ctrl+Shift+G)中生成一个名为 MERGE CHANGES 的区域,下面列出所有带 Conflicted 标签的文件。
这些文件旁有红色感叹号 ⚠️,并标注冲突数量(如 “3处冲突”)。点击任一文件,编辑器自动跳转并高亮首个冲突块。
注意:
- 如果没看到 MERGE CHANGES 分组,说明 Git 没报告冲突(可能已自动合并,或你尚未执行合并操作)
- 文件若只在 Changes 区显示但无 Conflicted 标签,那只是普通修改,不是冲突
冲突内容怎么呈现?三栏合并编辑器是默认视图
点击冲突文件后,VS Code 默认以三栏“合并编辑器”打开(Current|Incoming|Result),而非原始文本编辑器。
这个视图才是你真正“查看冲突”的地方:
-
Current栏显示你当前分支的代码(HEAD 所指版本) -
Incoming栏显示要合并进来的分支代码(比如feature/login的最新提交) -
Result栏是可编辑的输出区,你在这里决定最终保留什么 - 每个冲突块用红/绿色边框+灰色背景高亮,左右差异一目了然
如果意外打开了纯文本视图(看到 这类标记),右键文件标签 → 选择 Open with Merge Editor 即可切回来。
OpenClaw 技能 — 给定一个 GitHub 仓库 URL,自动解析出 owner/repo 名称,发现其中的 YAML/properties 配置文件及其配对的中文字段说明;在 `workspace/{repo}/` 目录下按同步日期(格式为 `YYYY-MM-DD`)创建时间戳子目录;写入 `.openclaw-config-state.json` 状态文件。每次用户提问前,先比对远程仓库当前 ref(如 `main` 或 `master`)的最新提交 SHA 与本地状态文件中记录的 SHA:
为什么点不开冲突?检查 git.mergeEditor 设置是否启用
VS Code 1.69+ 版本才默认启用图形化合并编辑器;旧版本或被手动关闭时,冲突文件只会以普通文本打开。
确认设置已开启:
- 打开设置(
Ctrl+,) - 搜索
git.mergeEditor - 确保其值为
true(不是undefined或false) - 无需重启,改完即生效
顺带建议开启 git.inlineMergeControls:设为 true 后,冲突行末尾会出现 ✓ 当前、✓ 传入、✓ 两者 小按钮,不用拖到顶部也能快速操作。
想“回看”上次合并冲突?Git 本身不存日志,但可查提交元信息
Git 不记录“谁在哪次合并里遇到了什么冲突”,只保留最终合并提交对象。如果你真想追溯某次合并的上下文:
- 用
git log --merges -n 5查最近 5 次合并提交 - 找到对应
commit hash后,运行git show看父提交(parent字段有两个 SHA) - 再用
git diff手动比对两分支分歧点——但这不是 VS Code 能图形化展示的内容
真正实用的做法是:把每次解决冲突的过程当作一次小范围代码评审,关注 Result 栏里你亲手敲下的每一行——那才是唯一值得“查看”的冲突记录。










