| 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=(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[] |
| |
| GIT |
| --- |
| Part of the linkgit:git[1] suite |