|  | 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 ] | 
|  | [ \--branches ] | 
|  | [ \--tags ] | 
|  | [ \--remotes ] | 
|  | [ \--stdin ] | 
|  | [ \--quiet ] | 
|  | [ \--topo-order ] | 
|  | [ \--parents ] | 
|  | [ \--timestamp ] | 
|  | [ \--left-right ] | 
|  | [ \--cherry-pick ] | 
|  | [ \--encoding[=<encoding>] ] | 
|  | [ \--(author|committer|grep)=<pattern> ] | 
|  | [ \--regexp-ignore-case | -i ] | 
|  | [ \--extended-regexp | -E ] | 
|  | [ \--fixed-strings | -F ] | 
|  | [ \--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 | 
|  | ----------------------------------------------------------------------- | 
|  |  | 
|  | 'git-rev-list' 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 'git-bisect' and | 
|  | 'git-repack'. | 
|  |  | 
|  | 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[1] suite |