0


git代码行统计

本文介绍统计项目代码行的方式,包括使用git log统计、git ls-files统计和使用linux命令行方式统计。

一、使用git log统计

1.统计所有代码行数

当前代码都存放在git仓库下,当需进行代码行数统计时,让开发人员在代码路径下运行如下指令,可统计出当前仓库中的代码行数:

 
git log --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.统计一定时间内产生的代码行数

此处提供时间参数执行方式,--since:起始时间,--until:终止时间:

--since = 
2019
-
01
-
01
--until == 
2019
-
12
-
31
git log --since=
2019
-
01
-
01
--until==
2019
-
12
-
31
--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 }'

3.统计指定开发者一段时间内产生的代码行数

此处提供指定开发者执行方式,和时间参数可以同时使用,–author:开发者账号名称:

git log --since =
2019
-
01
-
01
--until==
2019
-
12
-
31
--author=
"kaizen"
--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 }'

4.统计个人提交次数(前10)

git log --pretty=
'%aN'
| sort | uniq -c | sort -k1 -n -r | head -n 
10

5.按人统计代码量

git log --format=
'%aN'
| sort -u | 
while
read name; 
do
echo -en 
"$name\t"
; git log --author=
"$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

6.统计指定文件类型的行数

find . 
"("
-name 
"*.java"
-or -name 
"*.xml"
-or -name 
"*.yml"
-or -name 
"*.properties"
")"
-print | xargs wc -l

7.统计所有行数

git log --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 }'

二、使用git ls-files统计

统计行数

git ls-files | xargs cat | wc -l

上面两个命令只统计行数,没有细分到文件,下面这个命令是会把每个文件都列出来,并统计每个文件的行数。

git ls-files | xargs wc -l

三、使用linux 命令统计

计算当前目录下前端、后端文件的总行数

find . -type f |egrep 
"\.(java|xml|vue|js|jsp|css|scss|html|json)$"
| xargs cat | wc -l

计算当前目录下(排除 ./.idea、./.git 目录)各类文件的总行数

find . ! -path 
'./.idea*'
! -path 
'./.git*'
-type f |egrep 
"\.(java|xml|vue|js|jsp|css|scss|html|json)$"
| xargs cat | wc -l

本文转载自: https://blog.csdn.net/LG_15011399296/article/details/134181272
版权归原作者 明算科 所有, 如有侵权,请联系我们删除。

“git代码行统计”的评论:

还没有评论