--pretty[=<format>]::
--format=<format>::

	Pretty-print the contents of the commit logs in a given format,
	where '<format>' can be one of 'oneline', 'short', 'medium',
	'full', 'fuller', 'email', 'raw' and 'format:<string>'.  See
	the "PRETTY FORMATS" section for some additional details for each
	format.  When omitted, the format defaults to 'medium'.
+
Note: you can specify the default pretty format in the repository
configuration (see linkgit:git-config[1]).

--abbrev-commit::
	Instead of showing the full 40-byte hexadecimal commit object
	name, show only a partial prefix.  Non default number of
	digits can be specified with "--abbrev=<n>" (which also modifies
	diff output, if it is displayed).
+
This should make "--pretty=oneline" a whole lot more readable for
people using 80-column terminals.

--no-abbrev-commit::
	Show the full 40-byte hexadecimal commit object name. This negates
	`--abbrev-commit` and those options which imply it such as
	"--oneline". It also overrides the 'log.abbrevCommit' variable.

--oneline::
	This is a shorthand for "--pretty=oneline --abbrev-commit"
	used together.

--encoding[=<encoding>]::
	The commit objects record the encoding used for the log message
	in their encoding header; this option can be used to tell the
	command to re-code the commit log message in the encoding
	preferred by the user.  For non plumbing commands this
	defaults to UTF-8.

--notes[=<ref>]::
	Show the notes (see linkgit:git-notes[1]) that annotate the
	commit, when showing the commit log message.  This is the default
	for `git log`, `git show` and `git whatchanged` commands when
	there is no `--pretty`, `--format` nor `--oneline` option given
	on the command line.
+
By default, the notes shown are from the notes refs listed in the
'core.notesRef' and 'notes.displayRef' variables (or corresponding
environment overrides). See linkgit:git-config[1] for more details.
+
With an optional '<ref>' argument, show this notes ref instead of the
default notes ref(s). The ref is taken to be in `refs/notes/` if it
is not qualified.
+
Multiple --notes options can be combined to control which notes are
being displayed. Examples: "--notes=foo" will show only notes from
"refs/notes/foo"; "--notes=foo --notes" will show both notes from
"refs/notes/foo" and from the default notes ref(s).

--no-notes::
	Do not show notes. This negates the above `--notes` option, by
	resetting the list of notes refs from which notes are shown.
	Options are parsed in the order given on the command line, so e.g.
	"--notes --notes=foo --no-notes --notes=bar" will only show notes
	from "refs/notes/bar".

--show-notes[=<ref>]::
--[no-]standard-notes::
	These options are deprecated. Use the above --notes/--no-notes
	options instead.

--show-signature::
	Check the validity of a signed commit object by passing the signature
	to `gpg --verify` and show the output.
