GitLens 行级 blame 需手动开启 gitlens.showCurrentLineBlame(默认 false)和 gitlens.codeLens.enabled 才生效,否则右键、悬停、状态栏无反应;功能依赖 Git 跟踪、用户配置及工作区结构,查完整修改链需用“Show Line History”。

GitLens 的行级 blame 不是“开箱即用”,必须手动开启关键开关,否则右键、悬停、状态栏全无反应——这不是插件故障,是默认关闭了核心功能。
gitlens.showCurrentLineBlame 必须手动打开
这个设置控制光标停在哪一行,状态栏就显示哪一行的作者、时间、commit hash 和简短消息。默认是 false,所以你右键选 “Blame This Line” 没反应,不是插件坏了,是它根本没启动。
- 打开 VSCode 设置(
Ctrl+,),搜索gitlens.showCurrentLineBlame,勾选启用 - 或按
Ctrl+Shift+P输入GitLens: Toggle Current Line Blame,执行一次即可临时开启 - 注意:该功能只对当前焦点文件生效,切换文件后需重新触发(除非你同时开了自动刷新)
gitlens.codeLens.enabled 决定行尾是否显示作者信息
这是“行内 blame”的开关,也就是代码行末尾出现 john · 2 min ago 这类小字。它和状态栏 blame 是两套机制,可以独立开关。
- 设置项是
gitlens.codeLens.enabled,必须设为true - 顺手检查
gitlens.codeLens.recentChange是否为true,否则只显示首次提交人,不随修改更新 - 想精简内容?改
gitlens.codeLens.format,例如设为"${authorName} · ${dateRelative}",去掉${messageShort}避免换行挤压代码
常见“没显示”原因:不是配置问题,是 Git 状态或权限卡住了
即使所有开关都打开了,以下情况仍会导致 blame 信息为空或延迟:
- 文件未被 Git 跟踪(
git status中显示untracked或在.gitignore里) - 仓库未初始化(根目录下没有
.git文件夹) - 用了 SSH 克隆但本地没配
git config --get user.name和user.email,blame 会 fallback 成空或机器名 - 多根工作区中,目标文件不在主工作区目录下,且该子目录无独立
.git—— 此时需手动运行GitLens: Toggle File Blame Annotations - 刚
git pull完但没看到新作者?不是插件卡,是缓存没刷新 —— 执行GitLens: Refresh File Blame Annotations
想看某行完整修改历史链?别只点状态栏
状态栏只告诉你“最后谁改了这行”,但实际可能有 A 写逻辑、B 改变量名、C 调缩进 —— 三人全动过同一行。要查全链路,得用专门命令:
- 光标停在目标行,右键 →
GitLens: Show Line History(快捷键Alt+H L) - 面板列出所有 touch 过这行的 commit,倒序排列,每条带 author、date、message
- 点任一 commit,右侧高亮本次修改影响的具体字符范围(add/remove/modify)
- 若发现某次只改空格却被跳过,检查
gitlens.history.excludeTrivialCommits是否为true,关掉它才能看到纯格式改动
大文件(>5000 行)首次加载 line history 会有 1–2 秒延迟,不是卡死,是 GitLens 在后台解析 git log —— 它依赖真实 git blame 输出,不是自己猜的。


















