git-rev-list(1)
===============

NAME
----
git-rev-list - Lists commit objects in reverse chronological order


SYNOPSIS
--------
[verse]
'git-rev-list' [ \--max-count=number ]
	     [ \--skip=number ]
	     [ \--max-age=timestamp ]
	     [ \--min-age=timestamp ]
	     [ \--sparse ]
	     [ \--no-merges ]
	     [ \--first-parent ]
	     [ \--remove-empty ]
	     [ \--full-history ]
	     [ \--not ]
	     [ \--all ]
	     [ \--stdin ]
	     [ \--quiet ]
	     [ \--topo-order ]
	     [ \--parents ]
	     [ \--timestamp ]
	     [ \--left-right ]
	     [ \--cherry-pick ]
	     [ \--encoding[=<encoding>] ]
	     [ \--(author|committer|grep)=<pattern> ]
	     [ \--regexp-ignore-case | \-i ]
	     [ \--extended-regexp | \-E ]
	     [ \--date={local|relative|default|iso|rfc|short} ]
	     [ [\--objects | \--objects-edge] [ \--unpacked ] ]
	     [ \--pretty | \--header ]
	     [ \--bisect ]
	     [ \--bisect-vars ]
	     [ \--bisect-all ]
	     [ \--merge ]
	     [ \--reverse ]
	     [ \--walk-reflogs ]
	     [ \--no-walk ] [ \--do-walk ]
	     <commit>... [ \-- <paths>... ]

DESCRIPTION
-----------

Lists commit objects in reverse chronological order starting at the
given commit(s), taking ancestry relationship into account.  This is
useful to produce human-readable log output.

Commits which are stated with a preceding '{caret}' cause listing to
stop at that point. Their parents are implied. Thus the following
command:

-----------------------------------------------------------------------
	$ git-rev-list foo bar ^baz
-----------------------------------------------------------------------

means "list all the commits which are included in 'foo' and 'bar', but
not in 'baz'".

A special notation "'<commit1>'..'<commit2>'" can be used as a
short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of
the following may be used interchangeably:

-----------------------------------------------------------------------
	$ git-rev-list origin..HEAD
	$ git-rev-list HEAD ^origin
-----------------------------------------------------------------------

Another special notation is "'<commit1>'...'<commit2>'" which is useful
for merges.  The resulting set of commits is the symmetric difference
between the two operands.  The following two commands are equivalent:

-----------------------------------------------------------------------
	$ git-rev-list A B --not $(git-merge-base --all A B)
	$ git-rev-list A...B
-----------------------------------------------------------------------

linkgit:git-rev-list[1] is a very essential git program, since it
provides the ability to build and traverse commit ancestry graphs. For
this reason, it has a lot of different options that enables it to be
used by commands as different as linkgit:git-bisect[1] and
linkgit:git-repack[1].

OPTIONS
-------

:git-rev-list: 1
include::rev-list-options.txt[]

include::pretty-formats.txt[]


Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by David Greaves, Junio C Hamano, Jonas Fonseca
and the git-list <git@vger.kernel.org>.

GIT
---
Part of the linkgit:git[7] suite
