| git-rev-list(1) |
| =============== |
| |
| NAME |
| ---- |
| git-rev-list - Lists commit objects in reverse chronological order |
| |
| |
| SYNOPSIS |
| -------- |
| [verse] |
| 'git rev-list' [<options>] <commit>... [[--] <path>...] |
| |
| 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 |