git-shortlog.1   [plain text]


'\" t
.\"     Title: git-shortlog
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\"      Date: 06/01/2011
.\"    Manual: Git Manual
.\"    Source: Git 1.7.5.4
.\"  Language: English
.\"
.TH "GIT\-SHORTLOG" "1" "06/01/2011" "Git 1\&.7\&.5\&.4" "Git Manual"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-shortlog \- Summarize \(aqgit log\(aq output
.SH "SYNOPSIS"
.sp
.nf
git log \-\-pretty=short | \fIgit shortlog\fR [\-h] [\-n] [\-s] [\-e] [\-w]
\fIgit shortlog\fR [\-n|\-\-numbered] [\-s|\-\-summary] [\-e|\-\-email] [\-w[<width>[,<indent1>[,<indent2>]]]] <commit>\&...
.fi
.sp
.SH "DESCRIPTION"
.sp
Summarizes \fIgit log\fR output in a format suitable for inclusion in release announcements\&. Each commit will be grouped by author and the first line of the commit message will be shown\&.
.sp
Additionally, "[PATCH]" will be stripped from the commit description\&.
.sp
If no revisions are passed on the command line and either standard input is not a terminal or there is no current branch, \fIgit shortlog\fR will output a summary of the log read from standard input, without reference to the current repository\&.
.SH "OPTIONS"
.PP
\-h, \-\-help
.RS 4
Print a short usage message and exit\&.
.RE
.PP
\-n, \-\-numbered
.RS 4
Sort output according to the number of commits per author instead of author alphabetic order\&.
.RE
.PP
\-s, \-\-summary
.RS 4
Suppress commit description and provide a commit count summary only\&.
.RE
.PP
\-e, \-\-email
.RS 4
Show the email address of each author\&.
.RE
.PP
\-\-format[=<format>]
.RS 4
Instead of the commit subject, use some other information to describe each commit\&.
\fI<format>\fR
can be any string accepted by the
\-\-format
option of
\fIgit log\fR, such as
\fI* [%h] %s\fR\&. (See the "PRETTY FORMATS" section of
\fBgit-log\fR(1)\&.)
.sp
.if n \{\
.RS 4
.\}
.nf
Each pretty\-printed commit will be rewrapped before it is shown\&.
.fi
.if n \{\
.RE
.\}
.RE
.PP
\-w[<width>[,<indent1>[,<indent2>]]]
.RS 4
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\&.
.RE
.SH "MAPPING AUTHORS"
.sp
The \&.mailmap feature is used to coalesce together commits by the same person in the shortlog, where their name and/or email address was spelled differently\&.
.sp
If the file \&.mailmap exists at the toplevel of the repository, or at the location pointed to by the mailmap\&.file configuration option, it is used to map author and committer names and email addresses to canonical real names and email addresses\&.
.sp
In the simple form, each line in the file consists of the canonical real name of an author, whitespace, and an email address used in the commit (enclosed by \fI<\fR and \fI>\fR) to map to the name\&. For example:
.sp
.if n \{\
.RS 4
.\}
.nf
Proper Name <commit@email\&.xx>
.fi
.if n \{\
.RE
.\}
.sp
The more complex forms are:
.sp
.if n \{\
.RS 4
.\}
.nf
<proper@email\&.xx> <commit@email\&.xx>
.fi
.if n \{\
.RE
.\}
.sp
which allows mailmap to replace only the email part of a commit, and:
.sp
.if n \{\
.RS 4
.\}
.nf
Proper Name <proper@email\&.xx> <commit@email\&.xx>
.fi
.if n \{\
.RE
.\}
.sp
which allows mailmap to replace both the name and the email of a commit matching the specified commit email address, and:
.sp
.if n \{\
.RS 4
.\}
.nf
Proper Name <proper@email\&.xx> Commit Name <commit@email\&.xx>
.fi
.if n \{\
.RE
.\}
.sp
which allows mailmap to replace both the name and the email of a commit matching both the specified commit name and email address\&.
.sp
Example 1: Your history contains commits by two authors, Jane and Joe, whose names appear in the repository under several forms:
.sp
.if n \{\
.RS 4
.\}
.nf
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)>
.fi
.if n \{\
.RE
.\}
.sp
.sp
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:
.sp
.if n \{\
.RS 4
.\}
.nf
Jane Doe         <jane@desktop\&.(none)>
Joe R\&. Developer <joe@example\&.com>
.fi
.if n \{\
.RE
.\}
.sp
.sp
Note how there is no need for an entry for <\m[blue]\fBjane@laptop\fR\m[]\&\s-2\u[1]\d\s+2\&.(none)>, because the real name of that author is already correct\&.
.sp
Example 2: Your repository contains commits from the following authors:
.sp
.if n \{\
.RS 4
.\}
.nf
nick1 <bugs@company\&.xx>
nick2 <bugs@company\&.xx>
nick2 <nick2@company\&.xx>
santa <me@company\&.xx>
claus <me@company\&.xx>
CTO <cto@coompany\&.xx>
.fi
.if n \{\
.RE
.\}
.sp
.sp
Then you might want a \&.mailmap file that looks like:
.sp
.if n \{\
.RS 4
.\}
.nf
<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>
.fi
.if n \{\
.RE
.\}
.sp
.sp
Use hash \fI#\fR for comments that are either on their own line, or after the email address\&.
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
.SH "NOTES"
.IP " 1." 4
jane@laptop
.RS 4
\%mailto:jane@laptop
.RE