如何在Git中全局汇总多代码库代码行数变更及验证目标完成情况
代码行数变更追踪与统计方案
一、GitHub/GitLab的代码行数变更追踪能力
- GitHub:个人主页的贡献面板自带代码提交行数统计,默认展示年度新增/删除行数,仅统计主分支提交。可通过「Contribution settings」调整统计范围(包含fork仓库等),平台会自动计算你push的所有提交的增删行数并按时间汇总。
- GitLab:个人贡献页面同样支持按时间筛选,展示你在所有参与仓库中的代码增删总行数,默认统计你拥有或参与协作的仓库提交。
二、年末验证20000行目标的方法
- 平台直接查看:在GitHub/GitLab个人贡献页筛选2023年全年时间段,查看累计新增+删除行数总和。注意确认统计范围是否包含所有你参与的仓库(部分平台默认仅统计自有仓库,需手动开启fork仓库统计)。
- 本地精确统计:若平台统计存在分支遗漏等误差,可将所有相关仓库clone到本地,针对每个仓库用Git命令统计你在指定时间段内的提交行数,再手动汇总。
三、Git全局汇总多仓库代码行数变更
可以通过Shell脚本批量遍历仓库并统计,以下是实用脚本示例(适用于Linux/macOS):
创建脚本文件count_lines.sh:
#!/bin/bash # 配置你的Git用户名和统计时间范围 AUTHOR="你的Git用户名" START_DATE="2023-01-01" END_DATE="2023-12-31" # 初始化统计变量 TOTAL_ADD=0 TOTAL_DEL=0 # 遍历指定目录下的所有Git仓库 for repo in /path/to/your/repositories/*; do if [ -d "$repo/.git" ]; then echo "正在统计: $repo" cd "$repo" # 提取当前仓库的增删行数 stats=$(git log --author="$AUTHOR" --since="$START_DATE" --until="$END_DATE" --pretty=tformat: --numstat) add=$(echo "$stats" | awk '{sum += $1} END {print sum}') del=$(echo "$stats" | awk '{sum += $2} END {print sum}') # 累加至全局统计 TOTAL_ADD=$((TOTAL_ADD + add)) TOTAL_DEL=$((TOTAL_DEL + del)) cd .. fi done # 输出最终统计结果 echo "=====================================" echo "统计周期: $START_DATE 至 $END_DATE" echo "作者: $AUTHOR" echo "新增总行数: $TOTAL_ADD" echo "删除总行数: $TOTAL_DEL" echo "总计变更行数(新增+删除): $((TOTAL_ADD + TOTAL_DEL))"
使用步骤:
- 替换脚本中的
AUTHOR为你的Git用户名,/path/to/your/repositories为存放所有仓库的目录路径。 - 给脚本添加执行权限:
chmod +x count_lines.sh - 运行脚本:
./count_lines.sh
注意事项:
- 确保所有仓库已执行
git pull拉取最新提交。 - 作者名需与Git配置中的
user.name完全一致,否则会遗漏统计。
内容的提问来源于stack exchange,提问作者Hofbr
相关产品推荐
相关产品推荐

