每个项目文件的Git log --stat

时间:2018-04-19 09:44:35

标签: git git-log

我希望得到一些关于我的项目的统计数据以及团队过去几年所做的工作。我知道那里有git log --stat <file name>,它会为您提供一个日志,其中包含对该特定文件所做的所有修改。有没有办法在我的项目的每个文件上运行此git log --stat并输出到文件?

谢谢。

1 个答案:

答案 0 :(得分:1)

在git中没有本地方法可以做到这一点,但有两个项目通过解析may git命令的git命令来添加此功能。两者都被称为git fame,一个在ruby中实现,一个在python中实现。虽然它们被称为相同的东西,但它们的功能集略有不同。

不是解析git log,而是以瓷器模式解析git blame的结果,迭代通过git ls-files跟踪的所有文件。

Git Fame Python示例输出:

Blame: 100%|███████████████████████████████████| 11/11 [00:00<00:00, 208.43it/s]
Total commits: 302
Total files: 37
Total loc: 3134
+----------------------+------+------+------+----------------+
| Author               |  loc | coms | fils |  distribution  |
+======================+======+======+======+================+
| Casper da Costa-Luis | 3123 |  297 |   35 | 99.6/98.3/85.4 |
| Not Committed Yet    |    7 |    4 |    2 |  0.2/ 1.3/ 4.9 |
| Evïan Etàcidñys      |    4 |    1 |    1 |  0.1/ 0.3/ 2.4 |
+----------------------+------+------+------+----------------+

Git Fame Ruby示例输出:

Statistics based on master
Active files: 21
Active lines: 967
Total commits: 109

Note: Files matching MIME type image, binary has been ignored

+----------------+-----+---------+-------+---------------------+
| name           | loc | commits | files | distribution (%)    |
+----------------+-----+---------+-------+---------------------+
| Linus Oleander | 914 | 106     | 21    | 94.5 / 97.2 / 100.0 |
| f1yegor        | 47  | 2       | 7     |  4.9 /  1.8 / 33.3  |
| David Selassie | 6   | 1       | 2     |  0.6 /  0.9 /  9.5  |
+----------------+-----+---------+-------+---------------------+