当前位置:   article > 正文

win10_Git基于WSL(Linux子系统)统计代码行数命令_windows查项目行数

windows查项目行数

win10_Git基于WSL(Linux子系统)统计代码行数命令

一、引言

找到的基于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 工具,下载地址:

二、使用cmd、powershell执行的问题

使用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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

三、在工程目录下进入wsl

3.1 首先在命令行工具下进入工程根目录,并执行以下下命令统计当前工程代码行数

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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

命令说明:

  • wsl #进入linux子系统
  • git ls-files | xargs cat | wc -l #执行统计代码行数命令
  • exit #退出windows子系统

四、执行代码统计

4.1 常用的两个命令

1、统计当前项目代码行数 
git ls-files | xargs cat | wc -l

2、细分每个文件的代码行数,相当于把上面命令细化:
git ls-files | xargs wc -l
  • 1
  • 2
  • 3
  • 4
  • 5

4.2 其它命令

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可修改数字,查看最近几次的提交记录
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/645193
推荐阅读
相关标签
  

闽ICP备14008679号