提交的大小很难定义.首先,大多数提交都会回收许多现有的Git对象.如果您不在修订版A和B之间更改文件,B的大小是否应包含该文件的大小?此外,存储库大小本身也不容易确定.由于Git的压缩系统,它会不时地重新包装物体.它的方式可以受到多种因素的影响,因此如果再次执行此操作,它可能不会采用相同的方式,从而导致总大小不同.
您可以做的是检查每个修订版本的签出树的大小.但是,当然,您将获得的结果将远离存储库的大小本身.
Git 还没有提供这样的功能。
最好的解决方案是对日志进行 iretate 并 grep 文件大小并将它们添加在一起。
BitBucket 的创建者之一(Daniel Rohan)用 PERL 编写了一个解决方案:
https://confluence.atlassian.com/plugins/servlet/mobile#content/view/292651328
您不必尝试测量“大小”(这对于 Git 存储库来说没有意义,如poke所解释的),您可以可视化“代码频率”(即随着时间的推移添加或删除的行来表示贡献的“大小”) :
这个想法来自“ Introducing the New GitHub Graphs ”

请参阅“愚蠢的 Git 技巧 - 获取贡献者统计信息”,除非您不一定使用--authorwith git log --numstat,但您可以git log与--sinceand--until选项结合使用。
就像是:
git log --since "OCT 4 2011" --until "OCT 11 2011" --pretty=tformat: --numstat | \
gawk '{ add += $1 ; subs += $2 ; loc += $1 - $2 } END \
{ printf "added lines: %s removed lines: %s total lines: %s\n",add,subs,loc }' -
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1080 次 |
| 最近记录: |