先执行git status,若显示“both modified”且git ls-files -u有输出,才确认是真冲突;否则仅为普通修改。

怎么确认文件真有 Git 冲突,而不是普通修改?
VSCode 不会凭空显示“冲突”标签——它完全依赖 Git 的状态输出。点开一个文件却没看到 Accept Current Change 按钮,大概率不是工具失效,而是 Git 根本没把它当冲突。
先在终端执行:git status,重点看有没有类似这样的行:
both modified: src/utils/api.ts
如果只看到 modified: 或 untracked:,那这个文件就不是冲突状态,VSCode 自然不会加载合并视图。
- 再补一招验证:运行
git ls-files -u,有输出才说明 Git 确实卡在未解决的 unmerged 状态 - 检查 VSCode 左下角状态栏:必须显示分支名(如
main)和 Git 图标,否则 Git 扩展没启用或项目根目录没打开 - 别只打开单个文件——必须通过 SCM 面板(
Ctrl+Shift+G)点击冲突文件名,才能触发三栏合并编辑器
为什么点了“Accept Current Change”却没反应?
按钮灰掉或点击无反馈,90% 是因为光标没悬停在有效的冲突块上。VSCode 只在你把鼠标停在 ======= 这行时,才激活上方的操作按钮。
另外几个硬性条件缺一不可:
- 冲突标记格式必须完整:
、<code>=======、>>>>> feature/auth三行一个都不能少,少一行就识别失败 - 文件必须已保存(
Ctrl+S),VSCode 不会自动暂存未保存的修改 - 如果你用的是 WSL 或远程开发,确认
git.path设置指向的是远程环境里的git(比如/usr/bin/git),不是 Windows 本地路径
怎么强制打开四窗格合并编辑器?
当内联按钮不出现、或你想看清 BASE(共同祖先)版本时,Git: Open Merge Editor 是最稳的入口,它不依赖冲突标记是否规范,直接由 Git 提供三路内容。
将公开的创作者、博主、播客主持人、YouTuber 或 X/Twitter 账号人物转化为可部署的 OpenClaw 代理。当用户提供 YouTube 链接、X(推特)链接等时使用。
操作步骤很直接:
- 按
Ctrl+Shift+P(Windows/Linux)或Cmd+Shift+P(macOS)调出命令面板 - 输入并选择
Git: Open Merge Editor(注意别选成Compare with...) - 界面分四区:左上是
CURRENT(你的改动)、右上是INCOMING(对方的)、左下是BASE(原始)、右下是可编辑的MERGED区 - 每个差异块右侧有小按钮,点
Accept Current Change就把左上内容插入到右下,点Accept Incoming Change插入右上内容
改完后务必关闭整个合并编辑器窗口(不是只关标签页),否则 Git 仍认为该文件处于未解决状态。
解决完为什么还显示“Conflicted”?
VSCode 修改的是文件内容,但 Git 的 index(暂存区)并不知情。它还在等你明确执行 git add 告诉它:“这个文件我搞定了”。
必须补这一步:
- 在 SCM 面板里找到该文件,右键 →
Stage Changes - 或者点文件名左边的
+号(注意:这个+只对未跟踪文件有效;对已跟踪的冲突文件,必须右键或命令面板操作) - 终端执行
git add src/utils/api.ts
漏掉任何一个冲突块,或漏掉 git add,git commit 都会拒绝。尤其多人协作时,常有人手动删了 但忘了删 <code>>>>>>,导致 Git 仍认为未清理干净。










