git/Documentation/git-shortlog.txt
Jeff King 92338c450b shortlog: add grouping option
In preparation for adding more grouping types, let's refactor the
committer/author grouping code and add a user-facing option that binds
them together. In particular:

  - the main option is now "--group", to make it clear
    that the various group types are mutually exclusive. The
    "--committer" option is an alias for "--group=committer".

  - we keep an enum rather than a binary flag, to prepare
    for more values

  - we prefer switch statements to ternary assignment, since
    other group types will need more custom code

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2020-09-27 12:21:05 -07:00

101 lines
2.9 KiB
Plaintext

git-shortlog(1)
===============
NAME
----
git-shortlog - Summarize 'git log' output
SYNOPSIS
--------
[verse]
'git shortlog' [<options>] [<revision range>] [[--] <path>...]
git log --pretty=short | 'git shortlog' [<options>]
DESCRIPTION
-----------
Summarizes 'git log' output in a format suitable for inclusion
in release announcements. Each commit will be grouped by author and title.
Additionally, "[PATCH]" will be stripped from the commit description.
If no revisions are passed on the command line and either standard input
is not a terminal or there is no current branch, 'git shortlog' will
output a summary of the log read from standard input, without
reference to the current repository.
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 'git log', such as '* [%h] %s'.
(See the "PRETTY FORMATS" section of linkgit:git-log[1].)
Each pretty-printed commit will be rewrapped before it is shown.
--group=<type>::
Group commits based on `<type>`. If no `--group` option is
specified, the default is `author`. `<type>` is one of:
+
- `author`, commits are grouped by author
- `committer`, commits are grouped by committer (the same as `-c`)
-c::
--committer::
This is an alias for `--group=committer`.
-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 linkgit: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.
:git-shortlog: 1
include::rev-list-options.txt[]
MAPPING AUTHORS
---------------
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.
include::mailmap.txt[]
GIT
---
Part of the linkgit:git[1] suite