直接运行 git diff main 查看工作区与 main 分支差异;加 --staged 比较暂存区;vscode 中右键文件选「compare with branch…」输入分支名即可调出并排视图;diff 为空常见于已合并、文件未跟踪或工作区干净;用 --name-only 或 --name-status 快速列出变更文件。

git diff 查看当前分支与 main 的差异
直接在 VSCode 集成终端里运行 git diff main 就能看到当前工作区(未暂存)和 main 分支的差异;如果想看已暂存但未提交的内容,加 --staged: git diff --staged main。注意这里 main 是默认主分支名,有些仓库用 master,得先确认:git branch -r | grep -E 'origin/(main|master)'。
VSCode 内置比较功能怎么调出来
右键侧边栏的文件 → 选「Compare with Branch…」→ 输入 main(或实际主分支名),就能打开并排 diff 视图。这个操作依赖 Git 扩展正常工作,如果没反应,先检查状态栏是否显示分支名;不显示说明 VSCode 没识别到 Git 仓库,确认项目根目录下有 .git 文件夹,且 git 命令在系统 PATH 中可用。
为什么 diff 结果为空但明明改了代码
常见原因有三个:
• 当前分支已经合并过 main,或者 main 已经包含了你的提交
• 你改的是未跟踪文件(git status 显示为 untracked),git diff 默认不对比这类文件
• 用了 --no-index 以外的方式对比,但当前工作区干净(git status 显示 “nothing to commit”),那确实没有可比的变更
想一次性看到所有改动文件(不展开内容)
用 git diff --name-only main 最快,只列文件路径;加 --name-status 还能知道是新增、修改还是删除。如果配合 VSCode 快速跳转,可以把输出粘进「Quick Open」(Ctrl+P)里搜文件名——但注意,这种命令行结果不会自动高亮,也不支持点击跳转,别指望它替代图形化 diff 视图。
最常被忽略的一点:VSCode 的「Source Control」视图里显示的“更改”只是相对于上一次 commit,不是相对于 main。真要看和主分支的差异,必须显式指定分支名,不能只靠界面左下角那个分支标签做判断。











