git-log(1)
==========

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


SYNOPSIS
--------
'git log' <option>...

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].

--decorate::
	Print out the ref names of any commits that are shown.

--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.


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.

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
