| 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 |