gitlens 是 vscode 中高效查日志、比差异、追溯代码行修改者的事实标准;内置 git: view history 需通过命令面板调用且仅对已跟踪文件生效,git history 插件默认不显示 diff 需手动点 diff 标签,blame 和多提交对比等功能需依赖 gitlens 或其他专用工具。

VSCode 里看 Git 提交日志,不用装插件也能干,但想高效查、快速比、精准定位某行谁改的,得靠 GitLens —— 它不是“可选”,而是当前事实标准。
Git: View History 命令为啥点不出来?
VSCode 内置命令 Git: View History 并不总在右键菜单或侧边栏直接可见,它只响应命令面板调用。很多人卡在这一步:右键文件、点 Source Control 面板里的“History”按钮,结果啥都没弹出来。
- 确保当前编辑器标签页已打开一个 已被
git add跟踪的文件(git status能列出它),未暂存/未跟踪的文件无法触发该命令 - 按
Ctrl+Shift+P(Win/Linux)或Cmd+Shift+P(Mac),输入Git: View History回车 —— 不是“Git History”,也不是“Show File History” - 如果搜不到,检查 VSCode 设置里是否禁用了内置 Git 扩展(路径:
extensions.enabledExtensions),或 Git 可执行文件路径没配对(git.path) - 该命令默认展示整个仓库的提交历史;若只想看当前文件,需先打开该文件再运行命令(部分版本会自动过滤)
Git History 插件点开没 diff?别急着重装
git-history(作者 donjayamanne)确实能图形化展示提交树,但它默认只显示元信息:作者、时间、message、涉及文件列表。用户常误以为“点进某次提交就该立刻看到代码差异”,其实不是。
使用约定式提交信息暂存、提交和推送git更改。当用户想要提交和推送更改、提到推送到远程、或要求保存并推送工作时触发。也适用于用户说“推送更改”、“提交并推送”、“推送这个”、“推送到github”或类似git工作流程请求时。
- 进入提交详情页后,顶部有三个标签:
Overview、Files、Diff—— 真正看改动必须手动点Diff -
Diff标签为空?优先排查:git config core.autocrlf是否为true(Windows 常见),这会导致换行符被当成大量修改;临时设files.eol为\n可验证 - 该文件在那次提交中是二进制(如图片、.zip)、被
.gitattributes显式忽略、或你是在子目录打开 VSCode(而.git在父目录),都会导致 diff 不渲染 - 历史不自动刷新:提交新 commit 后,Git History 界面不会实时更新,必须手动点右上角
Refresh按钮
想看“这行代码是谁写的”?GitLens 的 Blame 是刚需
逐行追溯修改者,GitLens 的 inline blame 功能是目前唯一稳定、低侵入、高可用的方案。VSCode 内置的 Blame(右键 → Git: Blame)只出弹窗,不常驻,也不支持跳转到原始提交。
- 安装后,打开任意已跟踪文件,行号左侧会直接显示作者缩写 + 提交简短哈希 + 时间(如
jc a1b2c3d 2d) - 鼠标悬停在行号旁的 blame 信息上,弹出完整 author/email/message;点击可跳转到对应 commit 页面
- 右键某行 →
GitLens: Show Line History,直接拉出该行所有历史变更记录,含每次修改的上下文 diff - 注意:blame 依赖 Git 的底层算法,对重命名/大块移动后的文件可能不准;若发现明显错位,可尝试
git blame -C -M file手动验证
对比两个任意 commit?别指望 Git History 界面拖拽
git-history 不支持多选、不支持 Ctrl+Click 对比、没有“Compare with…”上下文菜单 —— 它的设计定位就是单提交浏览,不是 diff 工具。
- 最快路径:在 Git History 中点开某次提交,复制其哈希(如
abc1234),然后调用 VSCode 内置命令Git: Compare with Revision,粘贴另一个哈希(如def5678) - 跨分支对比前,务必先运行
git fetch origin,否则哈希解析失败会报fatal: bad revision 'xxx' - 对比大文件(>1MB)时,VSCode 内置 diff 易卡死或崩溃;此时用终端执行
git diff abc1234 def5678 -- path/to/file | code -(输出导入新 tab)更可靠 - 真正需要频繁双提交对比的场景,建议直接用
Git Graph插件:它支持 Ctrl+Click 多选节点,右键 →Compare Commits,交互更接近 SourceTree
Git History 插件本身轻量,但它的功能边界很清晰:适合快速翻阅时间线、找某个提交在哪、看文件变更列表。一旦需求超出“单点查看”,比如要追溯某行、要对比、要统计作者贡献,就得切到 GitLens —— 不是功能重叠,而是分工不同。别把工具当万能膏药,看清它能做什么、不能做什么,反而省时间。










