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 bash
或wsl
既美观又好用.
对贡献者的提交统计
git log --author=<作者名> --oneline --shortstat
将 <作者名>
替换为您要统计的作者的名称或用户名。执行此命令后,Git会输出该作者的提交历史,并显示每个提交的简要统计信息,包括插入的行数和删除的行数。
如果您只对提交总数感兴趣,可以使用以下命令:
git log --author=<作者名> --oneline | wc -l
这将统计匹配作者的提交数量,并将结果显示为一个整数。
请注意,这些命令只会统计匹配作者的提交记录。如果作者在不同的分支上进行了提交,或者使用了不同的用户名或邮箱地址,那么统计结果可能会不准确。