Home Explore Blog CI



git

1st chunk of `Documentation/git-log.adoc`
f7f05d62a57d41a5099b349ea2083916e373399fb5d1c9ef0000000100000d6e
git-log(1)
==========

NAME
----
git-log - Show commit logs


SYNOPSIS
--------
[verse]
'git log' [<options>] [<revision-range>] [[--] <path>...]

DESCRIPTION
-----------
Shows the commit logs.

:git-log: 1
include::rev-list-description.adoc[]

The command takes options applicable to the linkgit:git-rev-list[1]
command to control what is shown and how, and options applicable to
the linkgit:git-diff[1] command to control how the changes
each commit introduces are shown.


OPTIONS
-------

--follow::
	Continue listing the history of a file beyond renames
	(works only for a single file).

--no-decorate::
--decorate[=short|full|auto|no]::
	Print out the ref names of any commits that are shown. If 'short' is
	specified, the ref name prefixes 'refs/heads/', 'refs/tags/' and
	'refs/remotes/' will not be printed. If 'full' is specified, the
	full ref name (including prefix) will be printed. If 'auto' is
	specified, then if the output is going to a terminal, the ref names
	are shown as if 'short' were given, otherwise no ref names are
	shown. The option `--decorate` is short-hand for `--decorate=short`.
	Default to configuration value of `log.decorate` if configured,
	otherwise, `auto`.

--decorate-refs=<pattern>::
--decorate-refs-exclude=<pattern>::
	For each candidate reference, do not use it for decoration if it
	matches any patterns given to `--decorate-refs-exclude` or if it
	doesn't match any of the patterns given to `--decorate-refs`. The
	`log.excludeDecoration` config option allows excluding refs from
	the decorations, but an explicit `--decorate-refs` pattern will
	override a match in `log.excludeDecoration`.
+
If none of these options or config settings are given, then references are
used as decoration if they match `HEAD`, `refs/heads/`, `refs/remotes/`,
`refs/stash/`, or `refs/tags/`.

--clear-decorations::
	When specified, this option clears all previous `--decorate-refs`
	or `--decorate-refs-exclude` options and relaxes the default
	decoration filter to include all references. This option is
	assumed if the config value `log.initialDecorationSet` is set to
	`all`.

--source::
	Print out the ref name given on the command line by which each
	commit was reached.

--[no-]mailmap::
--[no-]use-mailmap::
	Use mailmap file to map author and committer names and email
	addresses to canonical real names and email addresses. See
	linkgit:git-shortlog[1].

--full-diff::
	Without this flag, `git log -p <path>...` shows commits that
	touch the specified paths, and diffs about the same specified
	paths.  With this, the full diff is shown for commits that touch
	the specified paths; this means that "<path>..." limits only
	commits, and doesn't limit diff for those commits.
+
Note that this affects all diff-based output types, e.g. those
produced by `--stat`, etc.

--log-size::
	Include a line ``log size <number>'' in the output for each commit,
	where <number> is the length of that commit's message in bytes.
	Intended to speed up tools that read log messages from `git log`
	output by allowing them to allocate space in advance.

include::line-range-options.adoc[]

<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

Title: Git Log Command
Summary
The git-log command is used to show commit logs, allowing users to view the history of commits in a repository, with various options to control the output and display of commit information, including options to decorate commits, show commit history beyond renames, and display differences introduced by each commit, providing a detailed overview of the repository's history and development.