Git:如何根据添加/更改的代码行来估算某个人对我的项目的贡献?

我有一个GIT仓库,我想计算一段时间内一个人或一组人添加/更改了多less行代码。 可以用git来计算吗?

你可以使用git log和一些shell-fu:

 git log --shortstat --author "Aviv Ben-Yosef" --since "2 weeks ago" --until "1 week ago" \ | grep "files\? changed" \ | awk '{files+=$1; inserted+=$4; deleted+=$6} END \ {print "files changed", files, "lines inserted:", inserted, "lines deleted:", deleted}' 

说明: git log --shortstat显示每个提交的简短统计信息,其中包括显示已更改文件的数量,插入和删除的行数。 然后,我们可以为特定的提交者( – 作者--author "Your Name" )和时间范围( – --since "2 weeks ago" --until "1 week ago" )过滤它。

现在,为了实际总结统计数据,而不是看到每个提交的条目,我们做一些shell脚本来做到这一点。 首先,我们使用grep来过滤只有差异的行。 这些行看起来像这样:

  8 files changed, 169 insertions(+), 81 deletions(-) 

或这个:

  1 file changed, 4 insertions(+), 4 deletions(-) 

然后我们使用awk对它们进行求和:对于每一行,我们添加被改变的文件(第一个单词),插入的行(第四个单词)和删除的行(第六个单词),然后在总结它们之后打印它们。

编辑:正斜杠被添加在顶部的片段,所以它可以复制并粘贴到命令行。

您可以使用Gitstats生成统计信息。 它有一个“作者”部分,其中包括前20位作者添加/删除的行数(排名前20位)。

编辑:也有Git:怪统计

对于特定date,您可以使用 – “2012-08-27” – “2012-09-01”

喜欢

git log –shortstat –author“Fabian”–since“2012-08-27”–until“2012-09-01”| grep“文件改变”| awk'{files + = $ 1; 插入+ = $ 4; 删除+ = $ 6} END {打印“文件已更改”,文件,“插入的行:”,插入,“行删除:”,删除}

检查这个解释

http://gitref.org/inspect/

你可以尝试Atlassian的鱼眼/坩埚与Git集成(以及其他代码回购)。 然后,每个人的贡献(包括他们的LOC)都会公开显示在易读的Web应用程序中。 对于小团体来说,它也相当便宜。

开源的信息,让它自己说话。