User Tools

Site Tools


git_rev_list

Overview

git rev-list is used to generate a list of (possibly) raw commit IDs to feed to another command.

SYNPOSIS

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 ] ]
             [ --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 ^ 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 ^ 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".

Trivial examples

$ git rev-list --author="Robert P. J. Day" HEAD
$ git rev-list --author="P. J." HEAD
$ git rev-list --author="P. J." --pretty HEAD
git_rev_list.txt · Last modified: 2017/09/08 08:58 by rpjday