You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何计算GitHub仓库贡献者的代码行数变更量

计算GitHub仓库贡献者代码行数变更量的方法

一、用Git原生命令直接统计

无需额外工具,在本地克隆的仓库目录下执行以下命令即可完成统计:

  • 统计所有贡献者的全历史行数变更:

    git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "新增: %s, 删除: %s, 净变更: %s\n", add, subs, loc }' -; done
    

    该命令先提取仓库中所有唯一贡献者名称,再逐个统计每个作者提交的新增行数、删除行数,以及净变更行数(新增减删除)。

  • 统计指定时间段内的变更:
    给git log添加时间范围参数即可,比如统计2024年上半年的贡献数据:

    git log --since="2024-01-01" --until="2024-06-30" --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --since="2024-01-01" --until="2024-06-30" --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "新增: %s, 删除: %s, 净变更: %s\n", add, subs, loc }' -; done
    

二、用第三方工具简化统计

1. git-fame

这是一款专注于Git贡献统计的工具,输出格式更直观整洁:

  • 安装:通过pip执行pip install git-fame完成安装
  • 基础统计:进入仓库目录后直接运行git fame,默认会展示每位贡献者的新增行数、删除行数、提交次数、贡献占比等核心数据
  • 定制统计:比如仅统计Python和JavaScript文件,执行git fame --include="*.py,*.js";排除测试与文档目录,执行git fame --exclude="tests/*,docs/*"

2. gitstats

可生成可视化HTML报告,包含多维度统计信息:

  • 安装:根据系统选择包管理器安装,Ubuntu用户执行sudo apt install gitstats,Mac用户执行brew install gitstats
  • 生成报告:执行gitstats ./ ./gitstats-report(第一个参数为本地仓库路径,第二个为报告输出目录),打开输出目录中的index.html即可查看贡献者行数统计、提交趋势等可视化内容

注意事项

  • 必须克隆完整仓库(避免使用浅克隆git clone --depth=1),否则会遗漏历史提交的统计数据
  • 若贡献者存在多个用户名/邮箱,统计结果会被拆分,可使用git filter-repo工具批量统一作者信息后再进行统计

内容的提问来源于stack exchange,提问作者Sangeeta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 22:52:13