配置VS Code为Git默认对比合并工具:1. 设置diff.tool为vscode并指定--wait --diff命令;2. 设置merge.tool为vscode,配置cmd和trustExitCode;3. 可选启用Merge Editor实验功能使用三路合并UI;4. 验证配置并检查PATH与命令有效性,确保集成正常工作。

只需在 Git 配置中指定 VS Code 的命令行工具 code(或 code-insiders),并启用其内置的 diff/merge 功能,就能让 VS Code 成为 Git 的默认对比和合并工具。关键是使用 --wait 参数,确保 Git 等待你关闭编辑器后再继续操作。
配置 VS Code 为默认 difftool
运行以下命令,把 VS Code 设为全局 diff 工具:
git config --global diff.tool vscode git config --global difftool.vscode.cmd 'code --wait --diff "$LOCAL" "$REMOTE"'
说明:
-
--wait:Git 会暂停执行,直到你关闭对比窗口 -
--diff:启用双栏对比模式(VS Code 会自动识别) -
"$LOCAL"和"$REMOTE"是 Git 自动传入的临时文件路径
验证是否生效:执行 git difftool HEAD~1 -- path/to/file.js,应直接在 VS Code 中打开对比视图。
配置 VS Code 为默认 mergetool
运行以下命令,设置 VS Code 为合并工具:
git config --global merge.tool vscode git config --global mergetool.vscode.cmd 'code --wait "$MERGED"' git config --global mergetool.vscode.trustExitCode true
说明:
-
"$MERGED"指向 Git 创建的合并结果文件(含冲突标记) -
trustExitCode true表示 Git 相信 VS Code 关闭后返回的退出码——若你手动保存并退出,Git 就认为合并完成
注意:VS Code 默认不提供三路合并界面,但能高亮显示冲突块(用 / ======= / >>>>>> branch-name 标记)。你可手动编辑、保存后关闭,Git 即继续流程。
(可选)启用 VS Code 内置的高级合并功能
VS Code 1.84+ 支持原生三路合并 UI(需开启实验性功能):
- 打开 VS Code 设置(
Ctrl+,),搜索merge editor - 勾选 “Merge Editor: Enabled”
- 再执行
git mergetool,就会弹出图形化三栏合并界面(左:LOCAL,中:MERGED,右:REMOTE)
此时建议更新 mergetool 命令以兼容该 UI:
git config --global mergetool.vscode.cmd 'code --wait --merge "$LOCAL" "$REMOTE" "$BASE" "$MERGED"'
其中 $BASE 是共同祖先版本,VS Code 合并编辑器会用到它。
快速检查与排错
若配置后没反应,检查这几项:
- 终端中运行
code --version,确认code命令已加入系统 PATH(macOS/Linux:Shell 中执行code --install-shell-command;Windows:安装时勾选 “Add to PATH”) - 运行
git config --get-all diff.tool和git config --get-all merge.tool,确认值为vscode - 临时去掉
--wait测试能否正常打开(如不能,说明路径或命令名有误)
基本上就这些。配置一次,后续所有 git difftool 和 git mergetool 都会自动唤起 VS Code,无需额外插件或脚本。









