vscode 可直接作为 git 的合并与差异工具,无需插件,配置后通过 code –wait –diff 和 code –wait –merge 命令调用,支持语法高亮、编辑和快速解决冲突。

VSCode 可以直接作为 Git 的合并工具(merge tool)和差异工具(diff tool),无需额外安装插件,只需简单配置即可替代 kdiff3、meld 等传统工具,界面熟悉、响应快、支持语法高亮和编辑。
启用 VSCode 内置的 Git 合并功能
VSCode 自带 code --wait --diff 和 code --wait --merge 命令,分别用于比较文件和解决合并冲突。确保你已将 VSCode 添加到系统 PATH(安装时勾选“Add to PATH” 或手动配置)。
- 在终端输入
code --version能正常输出版本号,说明已就绪 - windows 用户若用 PowerShell,可能需以管理员身份运行一次
code --install-extension ms-vscode.vscode-typescript-next(非必需,仅验证命令可用性)
配置 Git 使用 VSCode 作为 diff/merge 工具
在 Git 全局配置中设置外部工具:
git config --global diff.tool vscode git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE' git config --global merge.tool vscode git config --global mergetool.vscode.cmd 'code --wait --merge $BASE $LOCAL $REMOTE $MERGED' git config --global mergetool.vscode.keepBackup false git config --global mergetool.vscode.keepTemporaries false
这样配置后,执行 git difftool 或 git mergetool 就会自动唤起 VSCode 的对比/合并界面。
使用时的小技巧
VSCode 合并视图会清晰标出 BASE(共同祖先)、LOCAL(当前分支)、REMOTE(入栈分支)和 MERGED(输出文件)。你可以直接编辑右侧 MERGED 区域,保存即完成解决。
- 按
Ctrl+Shift+P(Win/linux)或Cmd+Shift+P(mac)打开命令面板,输入 “Merge Conflict” 可快速跳转并选择保留某侧变更 - 如果弹出窗口提示“文件已被修改”,是因 VSCode 默认启用保存即提交逻辑,可忽略或关闭设置中的
files.autoSave - 不希望每次手动输
git mergetool?可在冲突时直接运行code .打开项目,VSCode 会自动识别冲突文件并在左侧源代码管理栏高亮显示
基本上就这些。不需要装额外扩展,也不依赖 GUI 环境,命令行和图形界面无缝衔接,对日常协作开发很友好。