Git仓库的代码统计

可以使用以下命令来查看几天来个文件的代码量:

git log --pretty=tformat: --numstat --since="2023-05-10" --until="2023-05-12"

其中,–since和–until参数分别指定了统计的起始日期和结束日期。这个命令会输出每个文件的添加和删除行数,您可以通过awk命令来计算总行数。

如果您想要查看某个人在这段时间内的代码量,可以使用以下命令:

git log --author="username" --pretty=tformat: --numstat --since="2023-05-10" --until="2023-05-12"

其中,username是您要统计的人的用户名。

如果只是查看当天的代码量只需要带上--since="today"选项就行,不需要--until选项

awk命令的结合使用

awk是一种文本和数据处理编程语言,可以用于在linux/unix下对文本和数据进行处理。awk命令逐行读取文本,默认以空格或tab键为分隔符进行分隔,将分隔所得的各个字段保存到内建变量中,并按模式或者条件执行编辑命令。与sed命令不同的是,awk比较倾向于将一行分成多个“字段”然后再进行处理。

在您的问题中,您可以使用以下命令来统计代码量并结合awk对代码进行统计:

git log --pretty=tformat: --numstat --since="2023-05-10" --until="2023-05-12" | awk '{ add += $1; subs += $2; } END { printf "添加的代码行: %s, 删除的代码行: %s", add, subs }'

其中,|是管道符,用于将git log的输出传递给awk命令。awk命令中的$1表示第一个字段(即添加行数),$2表示第二个字段(即删除行数)。add、subs是自定义变量,用于存储添加行数、删除行数。END表示在处理完所有行后执行printf语句。

git log --pretty=tformat: --numstat
31      0       QTy3DApplication.cpp
25      0       QTy3DApplication.h
1       0       Resources/images.qrc
-       -       Resources/pictures/png/splash.jpg
5       4       main.cpp
35      0       "Deployment/\346\214\202\346\236\266\344\270\223\346\234\272/settings/MonitorParasConfig.ini"
15      0       "Deployment/\346\214\202\346\236\266\344\270\223\346\234\272/settings/ScanParasConfig.ini"
7       0       "Deployment/\346\214\202\346\236\266\344\270\223\346\234\272/settings/ScanTabConfig.ini"
19      0       "Deployment/\346\214\202\346\236\266\344\270\223\346\234\272/settings/errorNames.ini"

注意,在powershell下是没有awk命令的,这不是问题,一般开发者的电脑一般有wsl, 如果没有也关系不大,安装了git for windows后就自带了git-base了,常规的GUN命令都是有的,如果有windows terminal(windows 11默认的终端命令行工具),在它的下面打开git bashwsl既美观又好用.

对贡献者的提交统计

git log --author=<作者名> --oneline --shortstat

<作者名> 替换为您要统计的作者的名称或用户名。执行此命令后,Git会输出该作者的提交历史,并显示每个提交的简要统计信息,包括插入的行数和删除的行数。

如果您只对提交总数感兴趣,可以使用以下命令:

git log --author=<作者名> --oneline | wc -l

这将统计匹配作者的提交数量,并将结果显示为一个整数。

请注意,这些命令只会统计匹配作者的提交记录。如果作者在不同的分支上进行了提交,或者使用了不同的用户名或邮箱地址,那么统计结果可能会不准确。

posted @ 2023-05-12 18:22  非法关键字  阅读(343)  评论(0编辑  收藏  举报