revert: refactor code into a do_pick_commit() function
[gitweb.git] / Documentation / git-log.txt
index 5985f4739407f79fb4b5d564fba35735b653f7b0..a2d55f974525c59f3dd51684531861bf0dc49a23 100644 (file)
@@ -8,25 +8,21 @@ git-log - Show commit logs
 
 SYNOPSIS
 --------
-'git-log' <option>...
+'git log' [<options>] [<since>..<until>] [[\--] <path>...]
 
 DESCRIPTION
 -----------
 Shows the commit logs.
 
-The command takes options applicable to the linkgit: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 linkgit: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[]
 
@@ -41,33 +37,27 @@ include::diff-options.txt[]
        and <until>, see "SPECIFYING REVISIONS" section in
        linkgit:git-rev-parse[1].
 
---first-parent::
-       Follow only the first parent commit upon seeing a merge
-       commit.  This option can give a better overview when
-       viewing the evolution of a particular topic branch,
-       because merges into a topic branch tend to be only about
-       adjusting to updated upstream from time to time, and
-       this option allows you to ignore the individual commits
-       brought in to your history by such a merge.
-
--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.
-       Cannot be combined with --reverse.
-       See also linkgit: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.
 
 --log-size::
        Before the log message print out its size in bytes. Intended
@@ -76,10 +66,15 @@ include::diff-options.txt[]
        Note that only message is considered, if also a diff is shown
        its size is not included.
 
-<paths>...::
-       Show only commits that affect the specified paths.
+[\--] <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[]
@@ -113,6 +108,26 @@ git log --follow builtin-rev-list.c::
        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
 ----------
 
@@ -129,4 +144,4 @@ Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel
 
 GIT
 ---
-Part of the linkgit:git[7] suite
+Part of the linkgit:git[1] suite