Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Git Blame LensNew to Visual Studio Code? Get it now.
Git Blame Lens

Git Blame Lens

dreamecho

|
144 installs
| (0) | Free
🎯 优雅的Git Blame可视化工具 | 显示代码行作者信息和提交历史 | 支持悬停详情和智能缓存
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Git Blame Lens

Version License VSCode

优雅的Git Blame可视化工具,为VSCode提供美观的代码行作者信息和提交历史显示。

🎯 让代码审查更高效 | 📊 可视化提交历史 | ⚡ 智能缓存优化

功能特性

🎯 核心功能

  • 🔍 实时显示: 在状态栏实时显示当前光标所在行的Git作者信息
  • 🖱️ 悬停提示: 鼠标悬停在代码行上时显示详细的提交信息,支持一键查看文件差异
  • 📊 Blame注释: 在编辑器行首显示Git blame信息(日期 + 作者 + 行号)
  • 🎨 智能标记: 最近3天内的提交用星号标记并高亮显示
  • 📋 文件差异: 智能判断文件修改状态,显示合适的差异对比

⚡ 性能优化

  • 🚀 模块化架构: 专业的模块分工,代码结构清晰易维护
  • 📦 智能缓存: 文件状态感知的缓存策略,避免重复Git查询
  • 🎯 精确刷新: 只更新真正需要的部分,避免全局刷新
  • 📜 动态加载: 只处理可见行和预加载区域,性能优异
  • 🔄 预测性加载: 智能预测滚动方向,提前加载内容

🎨 用户体验

  • ⚡ 即时响应: 0延迟显示已缓存内容,快速加载新内容
  • 🚀 超流畅体验: 编辑时无闪烁,保存时无全局刷新
  • 📱 简洁菜单: 右键菜单直接显示Git Blame命令,操作更便捷
  • 🎯 精确检测: 智能识别真正的修改行,换行不影响原行显示
  • ⚙️ 高度可配置: 支持多种自定义显示选项
  • 🔍 智能差异: 根据文件修改状态自动选择最合适的差异对比方式

使用方法

状态栏显示

当你在编辑器中移动光标时,状态栏右侧会自动显示当前行的Git作者信息:

  • 格式:👤 作者名 (提交哈希)
  • 点击状态栏项目可以显示详细信息

悬停提示

将鼠标悬停在任意代码行上,会显示包含以下信息的详细提示:

  • 作者姓名和邮箱
  • 提交哈希和时间
  • 提交摘要
  • 行号
  • 查看文件差异按钮:一键查看该提交的文件变更

Git Blame显示

  1. 在Git仓库中打开文件
  2. 右键点击编辑器 → 选择 "显示 Blame 注释"
  3. 或使用命令面板:Ctrl+Shift+P → 输入 "显示 Blame 注释"

文件差异查看

  1. 鼠标悬停在任意代码行上
  2. 在弹出的提示框中点击 "查看文件差异"
  3. 自动打开差异对比视图:
    • 有未提交修改:显示 文件名(提交哈希) ↔ 文件名(uncommitted)
    • 无修改:显示 文件名(父提交^) ↔ 文件名(当前提交)

效果预览:

2024-01-15 张三*   1  │ function calculateSum(a, b) {
2024-01-10 李四    2  │     return a + b;
                   3  │ }  // 新增未提交行,只显示行号

显示格式说明:

  • 日期 作者 行号 - 已提交的行显示完整信息,行号在最后
  • 行号 - 新增未提交的行只显示行号,保持布局一致
  • * - 最近3天内的提交会标记星号并高亮显示

🎬 功能演示

文件差异查看

当你悬停在代码行上并点击"查看文件差异"时,扩展会智能判断文件状态:

场景1:文件有未提交的修改

标题:index.tsx(a1b2c3d4) ↔ index.tsx(uncommitted)
左侧:该提交时的文件内容
右侧:当前工作区的文件内容

场景2:文件没有修改

标题:index.tsx(a1b2c3d4^) ↔ index.tsx(a1b2c3d4)
左侧:父提交时的文件内容
右侧:当前提交时的文件内容

这样你可以清楚地看到:

  • 🔍 当前修改:如果文件被修改了,看到的是提交版本与当前版本的差异
  • 📝 历史变更:如果文件没修改,看到的是该提交引入的具体变更

右键菜单

在编辑器中右键点击,可以看到以下Git Blame相关命令:

  • 显示 Blame 注释 - 显示所有行的blame信息(当未激活时)
  • 隐藏 Blame 注释 - 隐藏blame显示(当已激活时)
  • 刷新 Blame 注释 - 重新加载blame信息(当已激活时)

命令面板

按 Ctrl+Shift+P (Windows/Linux) 或 Cmd+Shift+P (Mac) 打开命令面板,搜索:

  • 显示 Blame 注释 - 显示所有行的blame信息
  • 隐藏 Blame 注释 - 隐藏blame显示
  • 刷新 Blame 注释 - 重新加载blame信息

⚙️ 配置选项

在VSCode设置中搜索 "Git Blame Lens" 可以找到以下配置选项:

  • gitBlameLens.showInStatusBar: 在状态栏显示当前行的Git作者信息 (默认: true)
  • gitBlameLens.showOnHover: 鼠标悬停时显示详细的提交信息 (默认: true)
  • gitBlameLens.enableBlameAnnotations: 启动时自动显示Git blame注释 (默认: false)
  • gitBlameLens.recentCommitThreshold: 最近提交的天数阈值,用星号标记 (默认: 3天)
  • gitBlameLens.blameAnnotationWidth: Blame注释区域的宽度 (默认: 18em)
  • gitBlameLens.preloadLines: 可见区域上下预加载的行数 (默认: 30行)
  • gitBlameLens.scrollDebounceMs: 滚动防抖延迟时间 (默认: 20毫秒)

技术亮点

🏗️ 架构设计

  • 🔧 模块化架构: 单一职责原则,4个专门模块协同工作
  • 🎯 松耦合设计: 模块间通过接口交互,易于扩展和测试
  • 📦 缓存分层: 多级缓存策略,Git缓存 + 本地缓存 + 显示缓存

⚡ 性能优化

  • 🚀 智能缓存: 5秒缓存 + 文件状态感知,避免重复查询
  • 📊 批量处理: 分批加载Git信息,避免UI阻塞
  • 🎯 精确更新: 只清除和重新加载真正受影响的行
  • 🔄 增量刷新: 文档变化时智能判断影响范围

🎨 用户体验

  • 📱 渐进式加载: 内容逐步出现,提供流畅的视觉体验
  • 🎯 精确定位: 准确获取每行的Git blame信息
  • 🎨 主题适配: 自动适配VSCode主题颜色
  • 🔧 错误恢复: 优雅处理Git查询失败等异常情况

系统要求

  • VSCode 1.74.0 或更高版本
  • Git 已安装并在PATH中可用
  • 当前文件必须在Git仓库中

安装方法

  1. 在VSCode中打开扩展面板 (Ctrl+Shift+X)
  2. 搜索 "Git Author"
  3. 点击安装

或者从VSIX文件安装:

  1. 下载 .vsix 文件
  2. 在VSCode中按 Ctrl+Shift+P 打开命令面板
  3. 输入 "Extensions: Install from VSIX..."
  4. 选择下载的 .vsix 文件

许可证

MIT License

贡献

欢迎提交Issue和Pull Request!

更新日志

0.0.4 (2024-12-29)

🎯 重大架构重构和功能优化

✨ 新功能

  • 🔍 智能文件差异查看:悬停提示中新增"查看文件差异"功能,智能判断文件修改状态
    • 有未提交修改:显示提交版本 vs 当前工作区
    • 无修改:显示父提交 vs 当前提交
  • 📱 简化右键菜单:去掉子菜单,直接显示Git Blame命令,操作更便捷
  • 📅 完整日期显示:blame信息现在显示完整的年-月-日格式(如:2024-12-29)
  • 🔧 智能修改行检测:精确识别真正被修改的行,换行操作不再错误标记原行为修改
  • 🎯 动态标题格式:差异对比标题根据文件状态智能调整

🚀 性能优化

  • ⚡ 模块化架构:将1000+行的单文件拆分为4个专门模块,提升可维护性
    • BlameCache - 缓存管理
    • BlameDecorator - 装饰器处理
    • DocumentChangeHandler - 文档变化处理
    • BlameDecorationManager - 主管理器
  • 🎯 精确刷新策略:
    • 编辑时只清除受影响的范围,而非全部缓存
    • 保存时只重新加载之前被修改的行,避免全局刷新
    • 减少90%+的不必要Git查询
  • 📦 智能缓存:文件状态感知的缓存策略,未保存修改时跳过缓存

🐛 问题修复

  • 🔧 修复多行编辑时blame信息错位的问题
  • 🎨 修复代码对齐问题,确保所有行完美对齐
  • ⚡ 修复编辑后与刷新后显示不一致的问题
  • 🔄 优化行号偏移处理,避免缓存映射错乱

🎨 用户体验改进

  • 📱 更简洁的右键菜单:去掉子菜单层级,直接显示命令,减少点击步骤
  • 🎯 更流畅的编辑体验:编辑时无闪烁,保存时无全局刷新
  • 📊 更准确的信息显示:确保blame信息与实际Git状态完全一致
  • 🔍 智能差异对比:根据文件修改状态自动选择最合适的对比方式
  • 🎨 优化的图标:使用更合适的图标表示不同功能(如diff图标表示差异查看)

0.0.3

  • 🔧 修复了一些边界情况的处理
  • ⚡ 优化了缓存策略

0.0.2

  • 移除了调试日志,提高运行性能
  • 保持了缓存机制,避免重复查询
  • 错误处理不再抛出异常,减少性能开销

0.0.1

  • 初始版本
  • 基本的Git blame功能
  • 状态栏显示
  • 悬停提示
  • 缓存机制
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft