可自定义快捷键绑定git.diff命令实现一键对比,如Ctrl+Alt+D(Win/Linux)或Cmd+Alt+D(macOS),需确保文件已被Git跟踪且当前编辑器已打开该文件。

怎么用快捷键直接打开 Git 文件差异对比?
VSCode 默认不绑定「一键比对当前文件与 HEAD 的差异」的快捷键,但可以快速配置。关键不是找现成快捷键,而是自己绑定一个真正顺手的组合——比如 Ctrl+Alt+D(Windows/Linux)或 Cmd+Alt+D(macOS)。
操作路径:设置 → 键盘快捷方式 → 搜索 git.diff → 找到命令 git.diff(对应动作是「显示当前文件与暂存区/HEAD 的差异」)→ 右键添加快捷键。
- 别绑成
Ctrl+Shift+D:它默认被「调试视图」占用,冲突时反而打不开差异面板 - 如果文件未被 Git 跟踪,
git.diff会静默失败,无提示——先确认文件在工作区且已git add过 - 该命令只比对「当前编辑器打开的文件」,不支持多文件批量触发
合并冲突时,怎么跳转到下一个冲突块并高亮?
VSCode 内置的冲突导航不依赖插件,但默认快捷键容易被忽略:Ctrl+.(Windows/Linux)或 Cmd+.(macOS)能直接触发「快速修复」菜单,里面有「Accept Current Change」「Accept Incoming Change」等选项;而真正高效的是 Alt+F5 —— 它会逐个跳转到下一个冲突标记( 或 <code>>>>>>> commit-hash),并在侧边栏显示冲突预览。
-
Alt+F5不仅跳转,还会自动展开被折叠的冲突区域(前提是启用了"editor.foldingStrategy": "indentation"或默认的auto) - 如果跳转失效,检查是否禁用了
git.mergeEditor(VSCode 1.84+ 默认开启),关闭它会导致冲突块无法识别 - 冲突块内光标停在中间时,
Ctrl+Shift+P输入Git: Accept Current Change比手动删标记更快
为什么点了「Accept Both Changes」却没生效?
这个按钮只在「合并编辑器(Merge Editor)」中可用,普通文本编辑器里根本不会出现。VSCode 从 1.84 版本起默认启用图形化合并视图,但部分旧工作区或禁用 git.enabled 后会回退到纯文本模式。
- 确认当前文件处于合并状态(即存在未解决冲突),且右上角显示「MERGE」标签
- 若仍看不到「Accept Both Changes」,执行命令
Git: Open Merge Editor(可通过Ctrl+Shift+P调出)强制唤起图形界面 - 注意:「Accept Both Changes」不是简单拼接两段代码,而是按行合并——如果有重叠修改(比如同一行都被改了),它会保留 Incoming 版本,Current 版本被丢弃
如何让差异视图默认显示「行内差异」而非整块高亮?
VSCode 的差异视图默认用块级着色(block diff),对细微改动不友好。开启行内差异需手动改配置,且必须作用于差异编辑器本身,不是全局设置。
- 打开设置搜索
diffEditor.renderSideBySide,确保为true(左右分屏更易定位) - 关键项是
diffEditor.ignoreTrimWhitespace,设为false才能看到空格/换行差异;设为true会过滤掉纯格式变更 - 行内差异(inline diff)由
diffEditor.renderIndicators控制,但它只是显示小箭头,真要看到字符级高亮,得靠diffEditor.showMoves+ 手动拖动滑块——没有一键开关
复杂点在于:合并冲突时,图形化合并编辑器的行内差异逻辑和普通 diff 视图不完全一致,同一处修改在两边可能被识别为「move」而非「change」,这时候得靠人工核对上下文,不能全信颜色。


















