我们在年终回顾和统计中广泛使用git shortlog --summary --after='2022-01-01 00' --before='2022-12-31'
。
$ git shortlog --summary --after='2022-01-01 00' --before='2022-12-31'`
300 John
90 Jane
30 Jack
$ git shortlog --summary --after='2021-01-01 00' --before='2021-12-31'`
(empty)
不幸的是,数据是错误的。
在2022年,约翰没有提交,简有大约20次,约翰和杰克在2021年各有大约10次提交。
我们追踪到2022年的历史重写,git shortlog --summary
使用了提交的commit-date
(现在很多都显示2022年)。
有没有办法让git shortlog --sumary
使用提交author-date
?
我们已经搜索了git-log
和git-shortlog
手册页,但没有找到...
2条答案
按热度按时间cunj1qz11#
您现在可以尝试使用Git 2.39
--group
选项以使用任何分组参数git shortlog”学会了按“format”字符串分组
你可以得到类似于(TBT!!!)
git shortlog --date='format:%Y' --group='%ad' -s
的东西7d7tgy0s2#
谢谢你“懒獾”给我们指出了正确的方向。
简而言之,正如this answer中所指定的,它没有命令行参数。
但是,
git
(v2.39)有另一个选项可以使用。其中
%ad
是指定日期格式的作者日期,%aN
是关于.mailmap
的作者,%aE
是关于.mailmap
的电子邮件。(查看git-log手册页的PRETTY FORMATS部分)到目前为止,数据似乎是正确的。
当然,
--after
和--before
仍在处理提交日期数据集,因此在我们的情况下不可用。如何按日期进行分组仍然是未知的。(你甚至如何找到一个2000多行的手册页...)
此时git devs只需要发出一个命令,将历史记录转储为sqlite3 db,以便用于数据管理。
这是一个额外要求的测试。