需手动配置Git使用VSCode合并编辑器:运行git config --global merge.tool vscode(Windows用vscode.cmd)及git config --global mergetool.vscode.cmd 'code --wait $MERGED',--wait参数必不可少;解决冲突后须执行git add <file>或点击Take this change按钮,再提交时需填写非空commit信息。

Git合并冲突时VSCode弹不出合并编辑器
默认没开合并功能,或 Git 配置没指向 VSCode。VSCode 本身不自动接管 Git 合并流程,得手动告诉 Git:“冲突时用我来处理”。
- 运行
git config --global merge.tool vscode(Linux/macOS)或git config --global merge.tool vscode.cmd(Windows) - 再执行
git config --global mergetool.vscode.cmd 'code --wait $MERGED',--wait是关键,缺了它 VSCode 打开就返回,Git 认为“没操作完”,直接失败 - 如果装的是 VSCode Insiders,命令里把
code换成code-insiders - 验证是否生效:改一个文件,切分支改同一行,再
git merge—— 此时应自动弹出带 >>>>>> 的三栏合并视图
合并编辑器里点“Accept Current Change”没反应
不是按钮坏了,是当前文件还没被 Git 标记为“已解决”。VSCode 的合并操作只是修改文件内容,Git 不知道你心里觉得“搞定啦”。
- 必须手动执行
git add <file>,哪怕只改了一行,也得git add一次 - 或者点 VSCode 右上角的
Accept Current Change/Accept Incoming Change后,再点编辑器顶部的Take this change按钮(小勾图标),它会自动帮你git add - 如果点了但状态栏仍显示“Conflicted”,检查有没有漏掉其他冲突文件 ——
git status会列出所有未解决的
合并后 git commit 报错 “Aborting commit due to empty commit message”
VSCode 合并完不会自动生成提交信息,Git 默认要求你写一句说明,空着就卡住。
- 别直接关终端,先输一句比如
git commit -m "resolve conflict in src/utils.js" - 或者用
git commit不带-m,它会打开默认编辑器(可能是 vim),删掉所有以#开头的注释行,留一行有效文字再保存退出 - 如果误关了编辑器导致卡住,用
git commit --edit重新唤起,或git commit --no-edit强制用默认模板(但不推荐,容易漏掉上下文)
多人协作中,别人合入的代码在自己本地看不到冲突提示
不是没冲突,是你的工作区没真正拉到最新变更,或者用了 git pull --rebase 但没注意 rebase 过程中的暂停点。
-
git pull默认是fetch + merge,但如果本地有未提交改动,Git 会拒绝 merge,这时得先git stash或提交再拉 - 用
git pull --rebase时,一旦遇到冲突,Git 会停在那个 commit 上,git status显示 “rebase in progress”,此时必须解决冲突 →git add→git rebase --continue,不能直接git commit - VSCode 的源代码管理面板左下角会显示当前分支和上游追踪状态,如果写着 “Behind by X commits”,说明你本地没同步,得先拉
git status 和 .git/REBASE_HEAD 或 .git/MERGE_HEAD 文件是否存在,比盲目点“Accept”靠谱得多。


















