Reputation: 91610
I want a way to list all git authors that
These two are easy, and I've seen some solutions to this online, most using git log --format
. But none that I saw fits the additional requirements:
git shortlog
does this, and it gives a bunch of extra stuff that I don't want. But maybe I'm wrong. Or maybe those of you who are more handy with sed
and friends than I am would just use that.(by the way, how do I make Markdown not restart the numbering?)
I also want a way to order it by last name, but this is relatively easy.
Upvotes: 21
Views: 8262
Reputation: 22691
Note for people who want "global stat":
git shortlog -s -n -e
Give the global stats commits by author.
The options mean:
-s
/ --summary
: Suppress commit description and provide a commit count summary only.-n
/ --numbered
: Sort output according to the number of commits per author instead of author alphabetic order.-e
/ --email
: Show the email address of each author.Upvotes: 39
Reputation: 11578
The following format specifiers will solve your second concern:
%aN: author name (respecting .mailmap)
%aE: author email (respecting .mailmap)
%cN: committer name (respecting .mailmap)
%cE: committer email (respecting .mailmap)
So discounting the duplicate author part, you want something like
git log <commit>.. --format="%aN <%aE>" --reverse
I suspect you could pipe it through something that does a hash-table based deduplication, a perl oneliner would be trivial:
git log <commit>.. --format="%aN <%aE>" --reverse | perl -e 'my %dedupe; while (<STDIN>) { print unless $dedupe{$_}++}'
Upvotes: 26