概述
例子
统计最近150天内所有人的提交排名降序
git log --all --since=150.day.ago --pretty='%aN' | sort | uniq -c | sort -k1 -n -r
统计最近60天内前5个提交者
git log --all --since=60.day.ago --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
统计最近30天的提交名字排序
git log --format='%aN' --since=30.day.ago --all | sort -u | while read name; do echo -en "$namet"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %sn", add, subs, loc }' -; done
统计2021/5/1~2021/6/30的提交者排名
git log --format='%aN' --since=2021-05-01 --until=2021-06-30 --all | sort -u | while read name; do echo -en "$namet"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %sn", add, subs, loc }' -; done
最终使用
统计所有人的提交次数排名
git shortlog --all --numbered --summary --no-merges
统计4周内的提交次数排名
git log --since=4.weeks --numstat --pretty="%ae %H" --all --no-merges
| sed 's/@.*//g'
| awk '{ if (NF == 1){ name = $1}; if(NF == 3) {plus[name] += $1; minus[name] += $2}} END { for (name in plus) {print name": +"plus[name]" -"minus[name]}}'
| sort -k2 -gr
复杂统计详情
git log --shortstat --pretty="%cE" --all --no-merges --since=1.weeks
| sed 's/(.*)@.*/1/' | grep -v "^$"
| awk 'BEGIN { line=""; } !/^ / { if (line=="" || !match(line, $0)) {line = $0 "," line }} /^ / { print line " # " $0; line=""}'
| sort
| sed -E 's/# //;s/ files? changed,//;s/([0-9]+) ([0-9]+ deletion)/1 0 insertions(+), 2/;s/(+)$/(+), 0 deletions(-)/;s/insertions?(+), //;s/ deletions?(-)//' | awk 'BEGIN {name=""; files=0; insertions=0; deletions=0;} {if ($1 != name && name != "") { print name ": " files " files changed, " insertions " insertions(+), " deletions " deletions(-), " insertions-deletions " net"; files=0; insertions=0; deletions=0; name=$1; } name=$1; files+=$2; insertions+=$3; deletions+=$4} END {print name ": " files " files changed, " insertions " insertions(+), " deletions " deletions(-), " insertions-deletions " net";}'
| sort -k5 -gr
注意参数
参数 --all 和 --no-merges 统计所有的,并统计非合并
最后
以上就是激动裙子为你收集整理的git 统计每个人的代码提交量的全部内容,希望文章能够帮你解决git 统计每个人的代码提交量所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复