VS Code 比较文件,先分清你到底要比什么
VS Code 比较文件,先分清你到底要比什么
很多人说“想在 VS Code 里比较两个文件”,但这个“比较”其实可能是三件完全不同的事:
- 看两个文件哪里不一样
- 找两个文件里共同出现的内容
- 看同一个文件在 Git 历史里的变化
如果一开始没分清,后面就很容易在错误的工具上浪费时间。
1. 想看差异:直接用 VS Code 内置 Diff
这类需求最常见,比如:
- 两个配置文件有什么不同
- 两版文案改了哪里
- 两段代码删了什么、加了什么
用法很直接:
- 右键第一个文件,选择“Select for Compare”
- 再右键第二个文件,选择“Compare with Selected”
这时候 VS Code 给你的就是标准的 Diff 视图。
一句话总结:
想看哪里改了,用内置比较就够。
2. 想找共同内容:这不是 Diff,是交集
这个场景也很常见,比如:
- 两批 URL 有没有重复
- 两份 ID 列表哪些同时存在
- 两个文本文件里哪些行是一样的
如果文件是“一行一个值”,最省事的办法不是装插件,而是直接跑命令。
macOS / Linux / Git Bash:
1 | comm -12 <(sort -u a.txt) <(sort -u b.txt) |
如果要输出成文件:
1 | comm -12 <(sort -u a.txt) <(sort -u b.txt) > common.txt |
Windows PowerShell:
1 | $a = Get-Content .\a.txt | Sort-Object -Unique |
这里的重点是:
Diff 适合“看不同”,交集命令适合“拿结果”。
不要混着用。
3. 想看 Git 历史:切到 Git 视角
还有一种情况,表面上你在比较文件,实际你想知道的是:
- 这个文件在两个提交之间怎么变了
- 两个分支上的版本有什么差异
- 某段代码是谁改的
这时候普通文件比较就不够了,更适合直接用 Git。
比如:
1 | git diff |
如果你经常要看文件历史、提交差异、代码 blame,VS Code 里加上 GitLens 会更顺手。
4. 最省事的判断方法
以后再遇到“比较文件”这个需求,先问自己一句:
我是想看差异,还是想拿结果,还是想追历史?
对应关系其实很清楚:
- 想看差异:VS Code 内置 Diff
- 想拿共同项:命令行求交集
- 想追改动过程:Git / GitLens
工具并不难,难的是一开始把需求说混了。
把目标拆开,后面的选择就简单很多。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 LUYAO's Blog!




