Git:如何获取用户列表以及他们编写了多少行代码

时间:2013-11-26 08:03:10

标签: git

我前段时间写了/偷了一个脚本,找出了Git仓库中特定文件的当前“所有者”。

#!/bin/bash
git blame --line-porcelain "$@" | sed -n 's/^author //p' | sort | uniq -c | sort -rn

它显示git blame的结果,并根据每个用户修改的行数对其进行排序。

结果如下所示:

 125 Joe
  16 Fred
  16 Alice
   7 Jane
   4 Bob

我的问题是,如何修改此脚本以递归整个仓库而不是单个文件?

1 个答案:

答案 0 :(得分:5)

您可以使用git ls-tree列出Git中的所有文件。

以下是您的脚本执行的操作,但适用于master分支上的所有文件。

git ls-tree -r master --name-only | xargs -I {} git blame --line-porcelain {} | sed -n 's/^author //p' | sort | uniq -c | sort -rn