如何统计GitHub项目中个人编写及删除的代码行数?
用Git内置命令统计个人代码增删行数
Git本身就有内置命令可以完成这个需求,不需要额外工具,以下是具体操作:
基础统计(全项目历史)
运行下面的命令,把"你的GitHub用户名/提交名称/邮箱"替换成你提交代码时使用的身份信息(确保和Git提交记录里的一致,模糊匹配生效):
git log --author="你的身份信息" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "新增行数: %s\n删除行数: %s\n净增行数: %s\n", add, subs, loc }'
各参数说明:
--author:指定要统计的提交作者,支持模糊匹配--pretty=tformat::隐藏提交日志的标题信息,只保留行数统计数据--numstat:输出每个提交的新增、删除行数awk:用来汇总所有提交的增删行数,最终输出总统计结果
进阶统计(指定时间段/排除合并提交)
- 如果只需要统计某个时间段内的代码,添加
--since和--until参数:git log --author="你的身份信息" --since="2024-01-01" --until="2024-06-30" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "新增行数: %s\n删除行数: %s\n净增行数: %s\n", add, subs, loc }' - 如果要排除合并提交(避免统计合并时带来的行数变动),加上
--no-merges参数:git log --author="你的身份信息" --no-merges --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "新增行数: %s\n删除行数: %s\n净增行数: %s\n", add, subs, loc }'
注意事项
- 确保
--author的参数准确,否则可能会统计到其他同名作者的提交,可以用git log --format="%aN <%aE>"查看自己所有提交使用的身份信息 - 代码增删行数不能直接等同于代码质量:比如重构代码、优化冗余逻辑会增加删除行数,但实际上是提升了代码质量,你可以在汇报时主动说明这类情况
内容的提问来源于stack exchange,提问作者Iren E
相关产品推荐
相关产品推荐

