Documentation / git-rev-list.txton commit gitweb.cgi: Teach "a=blob" action to know the blob/file mime type (930cf7d)
   1git-rev-list(1)
   2===============
   3
   4NAME
   5----
   6git-rev-list - Lists commit objects in reverse chronological order
   7
   8
   9SYNOPSIS
  10--------
  11[verse]
  12'git-rev-list' [ \--max-count=number ]
  13             [ \--max-age=timestamp ]
  14             [ \--min-age=timestamp ]
  15             [ \--sparse ]
  16             [ \--no-merges ]
  17             [ \--remove-empty ]
  18             [ \--not ]
  19             [ \--all ]
  20             [ \--topo-order ]
  21             [ \--parents ]
  22             [ [\--objects | \--objects-edge] [ \--unpacked ] ]
  23             [ \--pretty | \--header ]
  24             [ \--bisect ]
  25             <commit>... [ \-- <paths>... ]
  26
  27DESCRIPTION
  28-----------
  29Lists commit objects in reverse chronological order starting at the
  30given commit(s), taking ancestry relationship into account.  This is
  31useful to produce human-readable log output.
  32
  33Commits which are stated with a preceding '{caret}' cause listing to stop at
  34that point. Their parents are implied. "git-rev-list foo bar {caret}baz" thus
  35means "list all the commits which are included in 'foo' and 'bar', but
  36not in 'baz'".
  37
  38A special notation <commit1>..<commit2> can be used as a
  39short-hand for {caret}<commit1> <commit2>.
  40
  41Another special notation is <commit1>...<commit2> which is useful for
  42merges.  The resulting set of commits is the symmetric difference
  43between the two operands.  The following two commands are equivalent:
  44
  45------------
  46$ git-rev-list A B --not $(git-merge-base --all A B)
  47$ git-rev-list A...B
  48------------
  49
  50OPTIONS
  51-------
  52--pretty::
  53        Print the contents of the commit changesets in human-readable form.
  54
  55--header::
  56        Print the contents of the commit in raw-format; each
  57        record is separated with a NUL character.
  58
  59--objects::
  60        Print the object IDs of any object referenced by the listed commits.
  61        'git-rev-list --objects foo ^bar' thus means "send me all object IDs
  62        which I need to download if I have the commit object 'bar', but
  63        not 'foo'".
  64
  65--objects-edge::
  66        Similar to `--objects`, but also print the IDs of
  67        excluded commits prefixed with a `-` character.  This is
  68        used by `git-pack-objects` to build 'thin' pack, which
  69        records objects in deltified form based on objects
  70        contained in these excluded commits to reduce network
  71        traffic.
  72
  73--unpacked::
  74        Only useful with `--objects`; print the object IDs that
  75        are not in packs.
  76
  77--bisect::
  78        Limit output to the one commit object which is roughly halfway
  79        between the included and excluded commits. Thus, if 'git-rev-list
  80        --bisect foo {caret}bar {caret}baz' outputs 'midpoint', the output
  81        of 'git-rev-list foo {caret}midpoint' and 'git-rev-list midpoint
  82        {caret}bar {caret}baz' would be of roughly the same length.
  83        Finding the change
  84        which introduces a regression is thus reduced to a binary search:
  85        repeatedly generate and test new 'midpoint's until the commit chain
  86        is of length one.
  87
  88--max-count::
  89        Limit the number of commits output.
  90
  91--max-age=timestamp, --min-age=timestamp::
  92        Limit the commits output to specified time range.
  93
  94--sparse::
  95        When optional paths are given, the command outputs only
  96        the commits that changes at least one of them, and also
  97        ignores merges that do not touch the given paths.  This
  98        flag makes the command output all eligible commits
  99        (still subject to count and age limitation), but apply
 100        merge simplification nevertheless.
 101
 102--remove-empty::
 103        Stop when a given path disappears from the tree.
 104
 105--not::
 106        Reverses the meaning of the '{caret}' prefix (or lack
 107        thereof) for all following revision specifiers, up to
 108        the next `--not`.
 109
 110--all::
 111        Pretend as if all the refs in `$GIT_DIR/refs/` are
 112        listed on the command line as <commit>.
 113
 114--topo-order::
 115        By default, the commits are shown in reverse
 116        chronological order.  This option makes them appear in
 117        topological order (i.e. descendant commits are shown
 118        before their parents).
 119
 120Author
 121------
 122Written by Linus Torvalds <torvalds@osdl.org>
 123
 124Documentation
 125--------------
 126Documentation by David Greaves, Junio C Hamano and the git-list <git@vger.kernel.org>.
 127
 128GIT
 129---
 130Part of the gitlink:git[7] suite
 131