Files
git/Documentation/git-log.txt
Junio C Hamano 8a3d203bd0 log.decorate: usability fixes
The configuration is meant to suppliment --decorate command line option
that can be used as a boolean to turn the feature on, so it is natural
to expect

	[log]
		decorate
		decorate = yes

to work.  The original commit would segfault with the first one, and
would not understand the second one.

Once a user has this configuration in ~/.gitconfig, there needs to be a
way to override it from the command line.  Add --no-decorate option to
log family and also allow --decorate=no to mean the same thing.  Since
we allow setting log.decorate to 'true', the command line also should
accept --decorate=yes and behave accordingly.

New tests in t4202 are designed to exercise the interaction between the
configuration variable and the command line option that overrides it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
2010-02-17 10:20:49 -08:00

139 lines
3.5 KiB
Plaintext

git-log(1)
==========
NAME
----
git-log - Show commit logs
SYNOPSIS
--------
'git log' [<options>] [<since>..<until>] [[\--] <path>...]
DESCRIPTION
-----------
Shows the commit logs.
The command takes options applicable to the 'git rev-list'
command to control what is shown and how, and options applicable to
the 'git diff-*' commands to control how the changes
each commit introduces are shown.
OPTIONS
-------
:git-log: 1
include::diff-options.txt[]
-<n>::
Limits the number of commits to show.
<since>..<until>::
Show only commits between the named two commits. When
either <since> or <until> is omitted, it defaults to
`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
linkgit:git-rev-parse[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'.
--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 <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.
--follow::
Continue listing the history of a file beyond renames.
--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
--------
git log --no-merges::
Show the whole commit history, but skip any merges
git log v2.6.12.. include/scsi drivers/scsi::
Show all commits since version 'v2.6.12' that changed any file
in the include/scsi or drivers/scsi subdirectories
git log --since="2 weeks ago" \-- gitk::
Show the changes during the last two weeks to the file 'gitk'.
The "--" is necessary to avoid confusion with the *branch* named
'gitk'
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
each commit modifies.
git log --follow builtin-rev-list.c::
Shows the commits that changed builtin-rev-list.c, including
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.
Discussion
----------
include::i18n.txt[]
Author
------
Written by Linus Torvalds <torvalds@osdl.org>
Documentation
--------------
Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
GIT
---
Part of the linkgit:git[1] suite