GitLens 的 Author Stats 能直接生成贡献统计图;它提供可交互的表格+柱状图混合视图,数据源自本地 git log 解析,支持按文件、分支、时间范围聚合提交数及净增删行数,无需远程服务。

GitLens 的 Author Stats 能直接生成贡献统计图
VSCode 本身不提供 Git 贡献统计图,但 GitLens 插件内置了实时作者统计面板,支持按文件、分支、时间范围聚合提交数、新增/删除行数等维度。它不是静态图表,而是可交互的表格+柱状图混合视图,数据来自本地仓库 git log 解析结果,无需远程服务或额外配置。
启用方式很简单:安装 GitLens 后,右键任意文件 → GitLens: Show File History → 点击顶部 Author Stats 标签页。或者全局执行命令 GitLens: Show Contributors 查看整个仓库的作者汇总。
- 默认统计最近 30 天的提交;想改时间范围,点击右上角时钟图标选择
Last 7 Days/All Time/ 自定义日期 - “Lines Added/Removed” 列显示的是净增删行数(
git log --shortstat级别),不等于代码审查意义上的“有效改动” - 统计基于
author字段,不是committer;如果团队用 CI/CD 工具自动提交(如 Dependabot),它的 author 邮箱可能被识别为独立贡献者
为什么 Git Graph 或内置 Git 面板不显示贡献图
Git Graph 专注拓扑可视化,所有节点都是提交点,没有聚合层;VSCode 内置 Git 视图只展示线性提交列表,连作者筛选都需手动输入。二者都不解析 commit 元数据做统计——这不是功能缺失,是设计边界明确:一个画图,一个列日志,都不负责分析。
如果你在 Git Graph 设置里翻遍 git-graph.* 配置项,找不到任何 “stats”、“chart”、“summary” 相关字段,原因就在这儿。强行用 git log --author="xxx" --oneline | wc -l 手动统计再贴进 Markdown 是可行的,但没法嵌入编辑器 UI。
导出数据到外部工具做图的关键路径
需要真正可导出、可定制的图表(比如给周报用),得把原始数据捞出来。最稳的方式是让 GitLens 输出 JSON,再喂给 Python/Pandas 或 Excel:
- 执行命令
GitLens: Export Repository Stats,会生成一个含作者、提交数、行数、首次/末次提交时间的.json文件 - 注意:该导出不包含文件粒度的变更详情,只到作者级别;如需 per-file 统计,得配合
git log --pretty="%an" --name-only+awk脚本 - 导出的 JSON 时间戳是毫秒级 Unix 时间,Excel 里需除以 86400000 并设置日期格式才能正确显示
容易被忽略的统计偏差点
贡献图看着直观,但三个底层事实常被忽略:
- 同一人多个邮箱(如
work@和personal@)会被算作两个作者,GitLens不自动去重,需提前用git config --global user.email统一 - merge commit 默认不计入作者统计(除非显式勾选 “Include merge commits”),而 rebase 后的提交 author 不变但 committer 变了,统计仍归属原 author
- 空提交(
git commit --allow-empty)会被计入提交数,但新增/删除行数为 0——这类“仪式性提交”拉高总数却不反映实际工作量


















