Git Blame提交统计信息

问题描述 投票:187回答:11

我如何“滥用”责备(或一些更合适的功能,和/或与shell命令结合使用,以给我统计当前在存储库中来自每个提交者的行数(代码)?

示例输出:

Committer 1: 8046 Lines
Committer 2: 4378 Lines
git
11个回答
161
投票

更新


0
投票

制作我自己的脚本,它是@nilbus和@Alex的组合


0
投票

针对在MacOS上运行的单个源文件的Bash函数。


118
投票

我写了一个可能有用的宝石git-fame


47
投票
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

31
投票

C0]软件包提供的[git summary正是您需要的。在git-extras处查看文档:


6
投票

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上对我毫无瑕疵,并且对结果进行了排序:


4
投票

sed


3
投票

检查可从git shortlog -sn获得的gitstats命令


2
投票

这里是@Alex的答案的主要摘要,实际上是汇总非议性行的操作。我已将其缩减为可对单个文件


1
投票

我有这种解决方案,可以计算所有文本文件(不包括二进制文件,甚至是版本控制文件)中的归咎行:

© www.soinside.com 2019 - 2024. All rights reserved.