有没有办法在git存储库中获取一组文件的所有添加和删除的总和?

时间:2016-08-10 09:54:50

标签: git shell repository

我想知道在整个生命周期中添加删除文件集做了多少存储库的em>,无论作者或提交如何。

有没有办法从git获取该信息?或者有没有办法通过使用git命令与一些shell魔法相关来获取此信息?

1 个答案:

答案 0 :(得分:0)

这是一个起点,虽然可能还有更多工作要做:

git rev-list --branches --parents |
while read hash parents; do
    # $hash is a commit; it has $parents as its parents
    set -- $parents
    for p do    # loop over all of $hash's parents
        git diff $p $hash --stat -- $pathlimiters
    done
done | awk '/files changed, / { print }'

输出将有多行格式:

 2 files changed, 10 insertions(+), 1 deletion(-)
 3 files changed, 924 insertions(+), 550 deletions(-)

修改awk代码(或用您喜欢的任何语言编写内容)以查找插入和删除计数并总结它们。

您可能还需要为根提交添加一个特殊情况(当$parents为空时)与the empty tree进行区分。