通过VSCode SSH远程查看分支间全目录差异的方法(Git 1.8.3.1)
解决Git 1.8.3.1下VSCode查看分支全目录差异的方法
方法一:用VSCode内置分支对比功能(推荐)
VSCode的源代码管理面板原生支持分支间的差异对比,无需依赖Git difftool的逐个打开逻辑,步骤如下:
- 打开VSCode左侧栏的源代码管理面板(分支图标)。
- 点击面板右上角的三个点(更多选项),选择
Branch > Compare Branches。 - 在弹出的分支选择框中,选中
MoreStableBranch作为对比分支。 - 此时面板会列出两个分支间所有有差异的文件,和你平时查看未提交变更的列表完全一致。点击任意文件,就能在VSCode的并排UI里查看具体代码差异。
这个方法无需额外操作文件系统,Git 1.8.3.1支持分支对比的基础git diff命令,所以可以正常工作。
方法二:文件夹对比(备用方案)
如果方法一因Git版本过老出现异常,可以通过导出目标分支内容到临时目录,再用VSCode的文件夹对比功能:
- 在远程机器命令行中,将
MoreStableBranch的内容导出到临时目录:mkdir -p /tmp/MoreStableTemp git archive MoreStableBranch | tar -x -C /tmp/MoreStableTemp - 在VSCode中确保当前打开的是
UnstableBranch的工作目录。 - 点击顶部菜单
File > Add Folder to Workspace,选择刚才创建的/tmp/MoreStableTemp目录添加到工作区。 - 在VSCode的资源管理器中,右键点击其中一个文件夹,选择
Compare with...,再选中另一个文件夹。 - 此时就能看到两个目录的全量差异,所有变更文件会被列出,点击即可查看并排对比的代码。
为什么之前的difftool方法不行?
你之前配置的git difftool会逐个打开文件,是因为Git 1.8.3.1还未引入difftool --dir-diff选项(该功能在Git 2.3.0才添加),无法一次性生成所有差异的目录视图。上面的两个方法可以绕过这个版本限制,实现你想要的全目录差异查看。
内容的提问来源于stack exchange,提问作者thehumaneraser
相关产品推荐
相关产品推荐

