我如何“滥用”责备(或一些更合适的功能,和/或与shell命令结合使用,以给我统计当前在存储库中来自每个提交者的行数(代码)?
示例输出:
Committer 1: 8046 Lines
Committer 2: 4378 Lines
制作我自己的脚本,它是@nilbus和@Alex的组合
针对在MacOS上运行的单个源文件的Bash函数。
我写了一个可能有用的宝石git-fame。
git ls-tree -r HEAD|sed -re 's/^.{53}//'|while read filename; do file "$filename"; done|grep -E ': .*text'|sed -r -e 's/: .*//'|while read filename; do git blame -w "$filename"; done|sed -r -e 's/.*\((.*)[0-9]{4}-[0-9]{2}-[0-9]{2} .*/\1/' -e 's/ +$//'|sort|uniq -c
C0]软件包提供的[git summary
正是您需要的。在git-extras处查看文档:
Erik的解决方案很棒,但是我在变音符号方面存在一些问题(尽管我的project : TestProject
lines : 13397
authors :
8927 John Doe 66.6%
4447 Jane Smith 33.2%
23 Not Committed Yet 0.2%
环境变量表面上设置正确),并且在实际上包含日期的代码行中泄漏了噪声。我的sed-fu很差,所以我最终得到了这个带有红宝石的弗兰肯斯坦片段,但它在200,000以上的LOC上对我毫无瑕疵,并且对结果进行了排序:
sed
检查可从git shortlog -sn
获得的gitstats命令
这里是@Alex的答案的主要摘要,实际上是汇总非议性行的操作。我已将其缩减为可对单个文件
我有这种解决方案,可以计算所有文本文件(不包括二进制文件,甚至是版本控制文件)中的归咎行: