| 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[=pattern] ] | |
| [ \--tags[=pattern] ] | |
| [ \--remotes[=pattern] ] | |
| [ \--glob=glob-pattern ] | |
| [ \--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 |