There is not a native way to do this in git, however there are two projects that add this functionality by parsing git commands of may git commands. Both are called git fame one is implemented in ruby and one is implemented in python. While the are called the same thing, they have slightly different feature sets.
Instead of parsing git log, however the both parse the results of git blame in porcelain mode iterating over all the files tracked via git ls-files.
Git Fame Python sample output:
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 sample output:
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 |
+----------------+-----+---------+-------+---------------------+