我想要一种方法列出所有git作者
这两个很容易,我在网上看到了一些解决方案,大部分使用git log --format
。但我所看到的都没有符合额外的要求:
git shortlog
这样做,并且它提供了一些我不想要的额外内容。但也许我错了。或者也许那些比我sed
和朋友更方便的人会使用它。(顺便说一句,如何让Markdown 不重新开始编号?)
我还想要一种按姓氏排序的方法,但这相对容易。
答案 0 :(得分:23)
对于想要"全球统计":
的用户请注意git shortlog -s -n -e
通过作者提交全局统计信息。
答案 1 :(得分:20)
以下格式说明符将解决您的第二个问题:
%aN:作者姓名(尊重.mailmap)
%aE:作者电子邮件(尊重.mailmap)
%cN:提交者名称(尊重.mailmap)
%cE:提交者电子邮件(尊重.mailmap)
因此,对重复的作者部分进行折扣,您需要类似
的内容git log <commit>.. --format="%aN <%aE>" --reverse
我怀疑你可以通过基于哈希表的重复数据删除来管理它,perl oneliner会很简单:
git log <commit>.. --format="%aN <%aE>" --reverse | perl -e 'my %dedupe; while (<STDIN>) { print unless $dedupe{$_}++}'