Git 查看提交与删除行数:统计代码贡献量指南
在软件开发中,代码行数统计是衡量团队协作效率和项目进度的重要指标。通过 Git 的命令行工具,开发者可以轻松查看提交的代码行数、删除的代码行数以及净增行数。本文将详细介绍多种方法,并结合实际案例,帮助你快速掌握这一技能。
本文介绍使用 Git 命令行工具统计代码提交行数和删除行数的方法。通过 git log 结合 numstat 参数及 awk 脚本,可实现按时间范围、特定作者或全分支的代码量汇总。此外还涵盖了跨平台环境兼容性说明及 CI/CD 集成方案,帮助团队量化开发贡献并优化项目管理流程。

在软件开发中,代码行数统计是衡量团队协作效率和项目进度的重要指标。通过 Git 的命令行工具,开发者可以轻松查看提交的代码行数、删除的代码行数以及净增行数。本文将详细介绍多种方法,并结合实际案例,帮助你快速掌握这一技能。
若想查看今天某个开发者(如 xiaoming)的代码贡献,可使用以下命令:
git log --author="xiaoming" --since=midnight --pretty=tformat: --numstat
--author="xiaoming":指定提交者。--since=midnight:仅统计从今日零点后的提交。--numstat:输出每次提交的新增行数(第一列)和删除行数(第二列)。示例输出:
20 5 path/to/file1 10 2 path/to/file2
通过管道符结合 awk,可以自动计算总行数:
git log --author="xiaoming" --since=midnight --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增行数:%s,删除行数:%s,净增行数:%s\n", add, subs, add - subs }'
输出示例:
新增行数:30,删除行数:7,净增行数:23
统计某段时间内的代码贡献,例如 2024 年 1 月 1 日至 2025 年 6 月 12 日:
git log --author="xiaoming" --since="2024-01-01" --until="2025-06-12" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增行数:%s,删除行数:%s,净增行数:%s\n", add, subs, add - subs }'
若需包含所有分支,添加 --all 参数:
git log --all --author="xiaoming" --since="2024-01-01" --until="2025-06-12" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增行数:%s,删除行数:%s,净增行数:%s\n", add, subs, add - subs }'
git log --format='%aN' | sort -u
git log --format='%aN' | sort -u | while read name; do echo -n "$name "; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增:%s,删除:%s\n", add, subs }'; done
输出示例:
xiaoming 新增:1500,删除:300
lily 新增:800,删除:150
通过编写 Shell 脚本,将统计结果自动生成报告并推送至团队协作平台(如 Slack、企业微信):
#!/bin/bash
# 统计今日提交行数并发送通知
RESULT=$(git log --author="xiaoming" --since=midnight --pretty=tformat: --numstat | awk '{ add += $1; subs += $2 } END { printf "新增:%s,删除:%s", add, subs }')
curl -X POST -H 'Content-type: application/json' --data '{"text":"今日代码贡献:"'"$RESULT""}' https://webhook-url
-- 参数指定特定扩展名(如 -- "*.py")。--since 和 --until 缩小时间范围,避免全量扫描导致性能问题。通过 Git 的命令行工具,开发者可以灵活统计代码提交的行数与删除行数,为团队协作和项目管理提供数据支持。无论是日常开发中的快速检查,还是项目复盘时的深度分析,这些技巧都能显著提升工作效率。掌握这些命令后,你不仅能更高效地管理自己的代码贡献,还能帮助团队实现更科学的开发流程。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online