Git仓库的代码统计

非法关键字 / 2023-05-12 / 原文

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

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既美观又好用.