git-shortlog
Summarize (Aqgit log (Aq output
TLDR
View a summary of all the commits made, grouped alphabetically by author name
$ git shortlog
View a summary of all the commits made, sorted by the number of commits made
$ git shortlog -n
View a summary of all the commits made, grouped by the commiter identities (name and email)
$ git shortlog -c
View a summary of the last 5 commits (i.e. specify a revision range)
$ git shortlog HEAD~[5]..HEAD
View all users, emails and the number of commits in the current branch
$ git shortlog -sne
View all users, emails and the number of commits in all branches
$ git shortlog -sne --all
SYNOPSIS
gitshortlog [<options>] [<revision range>] [[ --] <path> ...] git log --pretty=short | gitshortlog [<options>]
DESCRIPTION
OPTIONS
-n, --numbered Sort output according to the number of commits per author instead of author alphabetic order .
-s, --summary Suppress commit description and provide a commit count summary only .
-e, --email Show the email address of each author .
--format[=<format>] Instead of the commit subject, use some other information to describe each commit . <format> can be any string accepted by the --format option of gitlog ,such as *[%h] %s . (See the "PRETTY FORMATS" section of git-log (1).)
Each pretty -printed commit will be rewrapped before it is shown . .RE
-c, --committer Collect and show committer identities instead of authors .
-w[<width>[,<indent1>[,<indent2>]]] Linewrap the output by wrapping each line at width . The first line of each entry is indented by indent1 spaces, and the second and subsequent lines are indented by indent2 spaces . width , indent1 ,and indent2 default to 76, 6 and 9 respectively . If width is 0 (zero) then indent the lines of the output without wrapping them .
<revision range> Show only commits in the specified revision range . When no <revision range> is specified, it defaults to HEAD (i .e . the whole history leading to the current commit) . origin. .HEAD specifies all the commits reachable from the current commit (i .e . HEAD ),but not from origin . For a complete list of ways to spell <revision range>, see the "Specifying Ranges" section of gitrevisions (7).
[ --] <path> ... Consider only commits that are enough to explain how the files that match the specified paths came to be . Paths may need to be prefixed with -- to separate them from options or the revision range, when confusion arises .
MAPPING AUTHORS
Proper Name <commit@email .xx> .RE The more complex forms are: .RS 4
<proper@email .xx> <commit@email .xx> .RE which allows mailmap to replace only the email part of a commit, and: .RS 4
Proper Name <proper@email .xx> <commit@email .xx> .RE which allows mailmap to replace both the name and the email of a commit matching the specified commit email address, and: .RS 4
Proper Name <proper@email .xx> Commit Name <commit@email .xx> .RE which allows mailmap to replace both the name and the email of a commit matching both the specified commit name and email address . Example 1: Your history contains commits by two authors, Jane and Joe, whose names appear in the repository under several forms: .RS 4
Joe Developer <joe@example .com> Joe R . Developer <joe@example .com> Jane Doe <jane@example .com> Jane Doe <jane@laptop .(none)> Jane D . <jane@desktop .(none)> .RE Now suppose that Joe wants his middle name initial used, and Jane prefers her family name fully spelled out . A proper .mailmap file would look like: .RS 4
Jane Doe <jane@desktop .(none)> Joe R . Developer <joe@example .com> .RE Note how there is no need for an entry for <jane@laptop.(none)> ,because the real name of that author is already correct . Example 2: Your repository contains commits from the following authors: .RS 4
nick1 <bugs@company .xx> nick2 <bugs@company .xx> nick2 <nick2@company .xx> santa <me@company .xx> claus <me@company .xx> CTO <cto@coompany .xx> .RE Then you might want a .mailmap file that looks like: .RS 4
<cto@company .xx> <cto@coompany .xx> Some Dude <some@dude .xx> nick1 <bugs@company .xx> Other Author <other@author .xx> nick2 <bugs@company .xx> Other Author <other@author .xx> <nick2@company .xx> Santa Claus <santa .claus@northpole .xx> <me@company .xx> .RE Use hash # for comments that are either on their own line, or after the email address .