这个 Git 命令组合用于统计指定时间段内(2025年5月)所有贡献者的代码变更情况,包括:
bashgit log --format='%aN' | sort -u | while read name; do
echo -en "$name\t";
git log --author="$name" --since="2025-05-01" --until="2025-05-31" \
--pretty=tformat: --numstat | \
awk '{ add += $1; subs += $2; loc += $1 - $2 }
END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -;
done
bashgit log --format='%aN' | sort -u
--format='%aN'
:只输出作者姓名sort -u
:排序并去重bashwhile read name; do ... done
对每个唯一作者进行循环处理
bashgit log --author="$name" --since="2025-05-01" --until="2025-05-31" \
--pretty=tformat: --numstat
--author="$name"
:只统计指定作者的提交--since/--until
:时间范围限定--numstat
:显示每个文件变更的行数统计awk{ add += $1; # 累加新增行数 subs += $2; # 累加删除行数 loc += $1 - $2 # 计算净变更 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }
John Doe added lines: 542, removed lines: 123, total lines: 419 Jane Smith added lines: 321, removed lines: 210, total lines: 111
修改时间范围:
bash--since="2025-04-01" --until="2025-04-30" # 统计4月份
按周统计:
bash--since="1.weeks.ago" # 最近一周
排除合并提交:
bash--no-merges
只统计特定文件类型:
bash-- "*.js" "*.css" # 只统计JS和CSS文件
这个脚本是Git代码库分析的强大工具,可以帮助团队管理者更好地了解项目开发状况和成员贡献度。
本文作者:糀飞
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!