SYNOPSIS
--------
-'git-log' <option>...
+'git log' [<options>] [<since>..<until>] [[\--] <path>...]
DESCRIPTION
-----------
Shows the commit logs.
-The command takes options applicable to the gitlink:git-rev-list[1]
+The command takes options applicable to the 'git rev-list'
command to control what is shown and how, and options applicable to
-the gitlink:git-diff-tree[1] commands to control how the changes
+the 'git diff-*' commands to control how the changes
each commit introduces are shown.
-This manual page describes only the most frequently used options.
-
OPTIONS
-------
-include::pretty-options.txt[]
+:git-log: 1
+include::diff-options.txt[]
-<n>::
Limits the number of commits to show.
`HEAD`, i.e. the tip of the current branch.
For a more complete list of ways to spell <since>
and <until>, see "SPECIFYING REVISIONS" section in
- gitlink:git-rev-parse[1].
-
---first-parent::
- Follow only the first parent commit upon seeing a merge
- commit. This option gives a better overview of the
- evolution of a particular branch.
-
--p::
- Show the change the commit introduces in a patch form.
+ linkgit:git-rev-parse[1].
--g, \--walk-reflogs::
- Show commits as they were recorded in the reflog. The log contains
- a record about how the tip of a reference was changed.
- See also gitlink:git-reflog[1].
+--no-decorate::
+--decorate[=short|full|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. The default option
+ is 'short'.
---decorate::
- Print out the ref names of any commits that are shown.
+--source::
+ Print out the ref name given on the command line by which each
+ commit was reached.
--full-diff::
- Without this flag, "git log -p <paths>..." shows commits that
+ 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 "<paths>..." limits only
+ the specified paths; this means that "<path>..." limits only
commits, and doesn't limit diff for those commits.
--follow::
- Continue listing the history of a file beyond renames.
+ Continue listing the history of a file beyond renames/copies.
-<paths>...::
- Show only commits that affect the specified paths.
+--log-size::
+ Before the log message print out its size in bytes. Intended
+ mainly for porcelain tools consumption. If git is unable to
+ produce a valid value size is set to zero.
+ Note that only message is considered, if also a diff is shown
+ its size is not included.
+[\--] <path>...::
+ Show only commits that affect any of the specified paths. To
+ prevent confusion with options and branch names, paths may need
+ to be prefixed with "\-- " to separate them from options or
+ refnames.
+
+
+include::rev-list-options.txt[]
include::pretty-formats.txt[]
+include::diff-generate-patch.txt[]
Examples
--------
The "--" is necessary to avoid confusion with the *branch* named
'gitk'
-git log -r --name-status release..test::
+git log --name-status release..test::
Show the commits that are in the "test" branch but not yet
in the "release" branch, along with the list of paths
those commits that occurred before the file was given its
present name.
+git log --branches --not --remotes=origin::
+
+ Shows all commits that are in any of local branches but not in
+ any of remote tracking branches for 'origin' (what you have that
+ origin doesn't).
+
+git log master --not --remotes=*/master::
+
+ Shows all commits that are in local master but not in any remote
+ repository master branches.
+
+git log -p -m --first-parent::
+
+ Shows the history including change diffs, but only from the
+ "main branch" perspective, skipping commits that come from merged
+ branches, and showing full diffs of changes introduced by the merges.
+ This makes sense only when following a strict policy of merging all
+ topic branches when staying on a single integration branch.
+
+
Discussion
----------
GIT
---
-Part of the gitlink:git[7] suite
+Part of the linkgit:git[1] suite