vscode本身不支持在行号旁显示git blame信息,真正实现在代码行上方显示作者和时间的是gitlens的codelens功能;需安装gitlens、启用gitlens.codelens.enabled和gitlens.codelens.recentchange,并确保文件被git跟踪且用户信息已配置。

VSCode 本身不支持在行号旁显示 Git Blame 信息——行号区域(gutter)只留给装订线(glyph margin),没有预留空间给作者/时间文本;所谓“行号旁显示”实际是误传,真正在代码行上方显示作者和时间的,是 GitLens 的 codeLens 功能,它和行号完全无关,位置在行首左侧空白处(即代码内容区顶部,非行号列)。
为什么搜“行号旁显示 Git Blame”找不到正确方案
这是常见误解来源:有人把 gitlens.codeLens.enabled 开启后看到的行首作者标注,误认为是“贴着行号显示”。实际上它渲染在编辑器内容区(editor area)的顶部空白行,与行号列(gutter)物理分离。VSCode 行号列(.margin-view-overlays .line-numbers)仅支持数字渲染,不接受任何文本注入,GitLens 也从未、也无法往那里写入姓名或时间。
- 行号列宽度固定且极窄(通常 40–60px),只够画一条竖线或一个色块,无法容纳中文名或 ISO 时间字符串
-
editor.gutterBackground等配置只控制背景色,不提供文本渲染能力 - 所有尝试用 CSS 注入作者名到行号列的 hack(如修改
.line-numbers::before)在 VSCode 1.88+ 已失效,因 UI 层级重构后该选择器不再存在
正确启用 Git Blame 行内标注:靠 GitLens + codeLens
你要的效果,实际是 GitLens 在每行代码上方插入一行小字(作者、时间、提交简写),需同时满足三条件:
- 已安装并启用 GitLens 扩展(官方市场链接)
-
gitlens.codeLens.enabled设为true(不是gitlens.annotations.enabled) -
gitlens.codeLens.recentChange设为true(否则只显示首次提交人,不随修改更新)
设置路径:Ctrl+, → 搜索 gitlens codelens enabled → 勾选对应项;再搜 recent change → 确保开启。默认格式为 ${author} • ${date},可通过 gitlens.codeLens.format 自定义,例如:"${authorShort} • ${ago}" 显示 “zhang • 3 days ago”。
批量替换指定目录下所有 Git 仓库的远程地址(remote URL)。 当用户需要将 Git 仓库从一个服务器迁移到另一个服务器时使用。 触发词:git remote 替换、git url 批量修改、git 仓库迁移、更换 git 地址、批量修改 remote url。
让 Git Blame 标注看起来“靠近行号”的视觉技巧
虽然不能真塞进行号列,但可缩小代码区与行号列的视觉距离,让 codeLens 文本更贴近左侧边界:
- 关闭行号(
"editor.lineNumbers": "off"),只留codeLens文本,此时作者信息会顶到最左,无干扰 - 调小
editor.fontFamily字号(如12),让codeLens文本变细,减少视觉压迫感 - 用
workbench.colorCustomizations调暗editorCodeLens.foreground颜色(如"#555"),避免抢眼,强化“附属信息”定位
注意:codeLens 默认不显示在空行或注释行,这是 GitLens 内置逻辑,不可通过配置绕过。
容易被忽略的关键前提:文件必须被 Git 跟踪且状态可读
即使配置全开,以下任一情况都会导致 codeLens 不出现:
- 文件是
untracked(未git add)或ignored(在.gitignore中) - 工作区根目录下没有
.git文件夹(比如打开的是子目录,而.git在上级) -
git.path配置错误(如 Windows 下路径含空格却没加引号) - 当前用户 Git 配置缺失:
git config --global user.name和git config --global user.email必须已设置,否则 blame 返回空 author
验证方式:在终端执行 git blame -L1,1 -- your-file.js,若输出为空或报错,则 VSCode 里必然不显示。










