赞
踩
找到的基于git统计代码行数的命令,一般都是基于linux系统的shell命令。在使用mac电脑或者linux系统开发时,执行这些命令比较方便。
但是还有大部分人是使用windows做开发,这时就遇到麻烦了,因为基于shell的统计命令不能在windows系统下运行。
2022年11月16日微软 Win11/10 Linux 子系统 WSL 1.0.0 正式版发布。这也为这些在windows上做研发的人们提供了执行原生linux命令提供了遍历。
以下就说下在windows系统下基于WSL使用Git命令统计工程代码行数的方法。
如何在windows系统下安装wsl请查看:windows10(19044_1706)离线安装wsl。
也可以使用一些工具统计如:cloc 工具,下载地址:
使用powershell工程根目录下执行git命令会报如下错误
PS xxxxx > git ls-files | xargs cat | wc -l
xargs : 无法将“xargs”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。
所在位置 行:1 字符: 16
+ git ls-files | xargs cat | wc -l
+ ~~~~~
+ CategoryInfo : ObjectNotFound: (xargs:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
PS d:\myproject> cd d:\myproject
PS d:\myproject> wsl
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.
test@DESKTOP-2VBQPJK:/mnt/d/myproject$ git ls-files | xargs cat | wc -l
16194
test@DESKTOP-2VBQPJK:/mnt/d/myproject$ exit
logout
PS d:\myproject>
命令说明:
1、统计当前项目代码行数
git ls-files | xargs cat | wc -l
2、细分每个文件的代码行数,相当于把上面命令细化:
git ls-files | xargs wc -l
1、统计某个时间段内的代码行数; –since=统计开始时间 –until=统计结束时间 git log --since=2020-01-01 --until=2020-07-01 --pretty=tformat: --numstat | awk ‘{ add += $1; subs += $2; loc += $1 - $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ 2、统计某个人某个时间段内的代码行数; –author=代码提交人/用户名 –since=统计开始时间 –until=统计结束时间 git log --author=username --since=2020-01-01 --until=2020-07-01 --format=’%aN’ | sort -u | while read name; do echo -en “KaTeX parse error: Undefined control sequence: \t at position 5: name\̲t̲"; git log --au…name” --pretty=tformat: --numstat | grep “(.html|.java|.xml|.properties)$” |awk ‘{ add += $1; subs += $2; loc += $1 - $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ -; done 3、统计每个用户的所有提交代码行数(包括增、删、修改等) git log --format=’%aN’ | sort -u | while read name; do echo -en “KaTeX parse error: Undefined control sequence: \t at position 5: name\̲t̲"; git log --au…name” --pretty=tformat: --numstat | awk ‘{ add += $1; subs += $2; loc += $1 - $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ -; done 4、仓库提交者排名前 5(如果看全部,去掉 head 管道即可) git log --pretty=’%aN’ | sort | uniq -c | sort -k1 -n -r | head -n 5 5、统计某个用户的所有提交代码行数 git log --author=“username” --pretty=tformat: --numstat | awk ‘{ add += $1; subs += $2; loc += $1 - $2 } END { printf “added lines: %s, removed lines: %s, total lines: %s\n”, add, subs, loc }’ 6、统计代码提交的人数,也称:统计仓库提交贡献者 git log --pretty=’%aN’ | sort -u | wc -l 7、统计总提交次数 git log --oneline | wc -l 8、统计所有Java代码总行数提交修改的信息(有明细展示) find . “(” -name “*.java” “)” -print | xargs wc -l 9、统计所有其他文件总行数提交修改的信息(有明细展示) find . “(” -name “.m" -or -name ".mm” -or -name “.cpp" -or -name ".h” -or -name “.rss" “)” -print | xargs wc -l 可以按需要添加对应的文件后缀: -or -name ".文件后缀” 10、统计所有文件提交记录明细 git ls-files | xargs wc -l 11、查看最近几次的提交记录 git log -p -2 -2可修改数字,查看最近几次的提交记录
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。