|  | 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 ] | 
|  | [ --min-parents=<number> ] | 
|  | [ --no-min-parents ] | 
|  | [ --max-parents=<number> ] | 
|  | [ --no-max-parents ] | 
|  | [ --first-parent ] | 
|  | [ --remove-empty ] | 
|  | [ --full-history ] | 
|  | [ --not ] | 
|  | [ --all ] | 
|  | [ --branches[=<pattern>] ] | 
|  | [ --tags[=<pattern>] ] | 
|  | [ --remotes[=<pattern>] ] | 
|  | [ --glob=<glob-pattern> ] | 
|  | [ --ignore-missing ] | 
|  | [ --stdin ] | 
|  | [ --quiet ] | 
|  | [ --topo-order ] | 
|  | [ --parents ] | 
|  | [ --timestamp ] | 
|  | [ --left-right ] | 
|  | [ --left-only ] | 
|  | [ --right-only ] | 
|  | [ --cherry-mark ] | 
|  | [ --cherry-pick ] | 
|  | [ --encoding=<encoding> ] | 
|  | [ --(author|committer|grep)=<pattern> ] | 
|  | [ --regexp-ignore-case | -i ] | 
|  | [ --extended-regexp | -E ] | 
|  | [ --fixed-strings | -F ] | 
|  | [ --date=<format>] | 
|  | [ [ --objects | --objects-edge | --objects-edge-aggressive ] | 
|  | [ --unpacked ] | 
|  | [ --filter=<filter-spec> [ --filter-print-omitted ] ] ] | 
|  | [ --missing=<missing-action> ] | 
|  | [ --pretty | --header ] | 
|  | [ --bisect ] | 
|  | [ --bisect-vars ] | 
|  | [ --bisect-all ] | 
|  | [ --merge ] | 
|  | [ --reverse ] | 
|  | [ --walk-reflogs ] | 
|  | [ --no-walk ] [ --do-walk ] | 
|  | [ --count ] | 
|  | [ --use-bitmap-index ] | 
|  | <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[] | 
|  |  | 
|  | GIT | 
|  | --- | 
|  | Part of the linkgit:git[1] suite |