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 gitlink:git-rev-list[1]
command to control what is shown and how, and options applicable to
the gitlink:git-diff-tree[1] commands to control how the change
each commit introduces are shown.

This manual page describes only the most frequently used options.


OPTIONS
-------
--pretty=<format>::
	Controls the way the commit log is formatted.

--max-count=<n>::
	Limits the number of commits to show.

<since>..<until>::
	Show only commits between the named two commits.

-p::
	Show the change the commit introduces in a patch form.

<paths>...::
	Show only commits that affect the specified paths.


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

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 gitlink:git[7] suite

