我是靠谱客的博主 激动裙子,最近开发中收集的这篇文章主要介绍git 统计每个人的代码提交量,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

例子

统计最近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 统计每个人的代码提交量所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(36)

评论列表共有 0 条评论

立即
投稿
返回
顶部