git代码统计gitstats-生成详细html报告
1、 各环境下安装gitstats
http://gitstats.sourceforge.net/
如使用apt-get安装,先执行apt-get update 升级
再执行:
C/C++ Code复制内容到剪贴板
- apt-get install gitstats
2、 使用gitstat工具分析code目录(git clone的目录)代码生成结果到result文件夹中
C/C++ Code复制内容到剪贴板
- gitstats code result
result下生产html分析报告
分析结果:
常规的统计:文件总数,行数,提交量,作者数。
活跃性:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。
作者数:列举所有的作者(提交数,第一次提交日期,最近一次的提交日期),并按月和年来划分。
文件数:按日期划分,按扩展名名划分。
行数:按日期划分。
git直接统计代码行数
1、统计所有代码行数:
C/C++ Code复制内容到剪贴板
- 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、统计时间段内代码行数
C/C++ Code复制内容到剪贴板
- git log --since=2023-01-01 --until=2024-01-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 }'
–since:开始时间
–until:结束时间
3、统计所有用户提交代码行数
C/C++ Code复制内容到剪贴板
- 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
4、统计所有用户指定时间段内提交代码行数
C/C++ Code复制内容到剪贴板
- git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --since ==2023–01-01 --until=2024-01-01 --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
5、统计指定用户指定时间段内提交代码行数
C/C++ Code复制内容到剪贴板
- git log --author="YY" --pretty=tformat: --since=2023-01-01 --until=2024-01-01 --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }'
–author:用户名
–since:开始时间
–until:结束时间