一、git命令统计
1、统计某人代码提交量
git log --author="mengfanxiao" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s", add, subs, loc }' -
2、统计所有人代码提交量(指定统计提交文件类型)
git log --format='%aN' | sort -u | while read name; do echo -en "$name"; git log --author="$name" --pretty=tformat: --numstat | grep "(.html|.java|.xml|.properties|.css|.js|.txt)$" | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s", add, subs, loc }' -; done
3、统计某时间范围内的代码提交量
git log --author=mengfanxiao --since=2019-01-01 --until=2021-02-01 --format='%aN' | sort -u | while read name; do echo -en "$name"; git log --author="$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", add, subs, loc }' -; done
结果:added lines: 106243, removed lines: 14088, total lines: 92155
4、查看git提交前5名
git log --pretty='%aN' | sort | uniq -c | sort -k1 -n -r | head -n 5
![f80bb38d418fee0b11c48ba31c71dcc0.png](https://i-blog.csdnimg.cn/blog_migrate/1f859351a134a3f28c56dbd3904815a2.jpeg)
5、贡献值统计
git log --pretty='%aN' | sort -u | wc -l
6、提交数统计
git log --oneline | wc -l
7、统计或修改的行数
git log --stat|perl -ne 'END { print $c } $c += $1 if /(d+) insertions/'
二、idea statstic 统计
1、安装statstic插件
![af524850a774ea66392f845b934008aa.png](https://i-blog.csdnimg.cn/blog_migrate/5f329b4bb098b48af32f1bec3d9ed72d.jpeg)
2、安装插件
![f2a37f1c775e39c052898b1ec98b27c0.png](https://i-blog.csdnimg.cn/blog_migrate/059327064f5e90a319a1e7923512794e.jpeg)
3、已安装好的效果 然后重启下idea
![3d9aa8227b948b084d43831c022f6969.png](https://i-blog.csdnimg.cn/blog_migrate/f019b176a2a0003918b4128a9affdfc4.jpeg)
4、重启了之后 就会出现stastic 选中要查看的代码 点击 refresh on selection
![39e826bf91f9141cd33fc560ab7ad682.png](https://i-blog.csdnimg.cn/blog_migrate/53d859fdeb87d4682eec32ff0c8f92ec.jpeg)
5、overview是全部文件 其他的tab页签 如css html java js properties txt xml 可以配置
![a22698c9793bf67bdaa096710af3f421.png](https://i-blog.csdnimg.cn/blog_migrate/29db248bc3c5d2a554e8c9b61cf3ff8f.jpeg)
6、配置方式
1)点击settings
![5edc35019d5ae0d46c1e73190df41404.png](https://i-blog.csdnimg.cn/blog_migrate/9c6c57139ac9330afee05cc978b77b36.jpeg)
2)配置文件类型
![d5581f7d868a9961d9b8e70cd27910a6.png](https://i-blog.csdnimg.cn/blog_migrate/45f165f679ad0bda1825442f129bc065.jpeg)
三、gitstat (感觉最有意思的方式)
git clone git://github.com/hoxu/gitstats.git
cd gitstats./gitstats 你的项目的位置 生成统计的文件夹位置可能会提示没有安装gnuplot画图程序,那么需要安装再执行://mac osxbrew install gnuplot//centos linuxyum install gnuplot用mac brew安装的时候 速度可能很慢 处理方式更换国内阿里云上的homebrew镜像: # 替换brew.git:cd "$(brew --repo)"git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git# 替换homebrew-core.git:cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git# 替换homebrew-bottles:echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrcsource ~/.zshrc切换好安装源之后 再使用brew命令就会分块安装好之后 执行命令就会生成html文档访问页面 首先看到项目概括 总文件、代码总行数、总提交次数、多少个作者提交记录
作者提交记录统计
![79acc40c110f7454ba335b60ffbe0d76.png](https://i-blog.csdnimg.cn/blog_migrate/80f969cc955bd353f17b55fcd1568cc0.jpeg)
![a4bd8eaf87819cb0474f5cb7adda3616.png](https://i-blog.csdnimg.cn/blog_migrate/e061d46c483d378e52c07ce78a483128.jpeg)
![bf2dac6c82b82a1376d26f160065a26b.png](https://i-blog.csdnimg.cn/blog_migrate/d2221e8bf3a44007d669c023a04cfd15.jpeg)
![0d34939cb876268f5295174693ac26b9.png](https://i-blog.csdnimg.cn/blog_migrate/ea723a2b970090a2dd537f8145ed4762.jpeg)
四、使用 cloc
1、
brew install cloc
![7be5998258eefd495654879357811ceb.png](https://i-blog.csdnimg.cn/blog_migrate/2deff130cca21d5642f116f25f8b4898.jpeg)
2、统计当前文件夹代码量
![6e7060e6e96d923c26ad5b5bc24a9d1f.png](https://i-blog.csdnimg.cn/blog_migrate/714cd6d27ce515244977b7f0d91b0e17.jpeg)
3、统计排除当前目录下的某个文件夹的代码量(这里以Pods文件夹为例)
cloc ./ --exclude-dir=Pods
3、统计特定文件的代码量(这里以acpi为例)
cloc -by-file acpi
4、帮助文档
![2f32c01109ae444bc6b12dc3c3bb4d9f.png](https://i-blog.csdnimg.cn/blog_migrate/026031a6217611d492363dda98a080ab.jpeg)