|  | 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 ] | 
|  | [ \--merges ] | 
|  | [ \--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 | 
|  | ----------- | 
|  |  | 
|  | List commits that are reachable by following the `parent` links from the | 
|  | given commit(s), but exclude commits that are reachable from the one(s) | 
|  | given with a '{caret}' in front of them. The output is given in reverse | 
|  | chronological order by default. | 
|  |  | 
|  | You can think of this as a set operation. Commits given on the command | 
|  | line form a set of commits that are reachable from any of them, and then | 
|  | commits reachable from any of the ones given with '{caret}' in front are | 
|  | subtracted from that set. The remaining commits are what comes out in the | 
|  | command's output. Various other options and paths parameters can be used | 
|  | to further limit the result. | 
|  |  | 
|  | Thus, the following command: | 
|  |  | 
|  | ----------------------------------------------------------------------- | 
|  | $ git rev-list foo bar ^baz | 
|  | ----------------------------------------------------------------------- | 
|  |  | 
|  | means "list all the commits which are reachable from 'foo' or 'bar', but | 
|  | not from '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 | 
|  | ----------------------------------------------------------------------- | 
|  |  | 
|  | 'rev-list' is a very essential git command, 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 |