]> git.ipfire.org Git - thirdparty/git.git/blame - Documentation/git-rev-list.txt
rev-list: add bitmap mode to speed up object lists
[thirdparty/git.git] / Documentation / git-rev-list.txt
CommitLineData
2cf565c5
DG
1git-rev-list(1)
2===============
2cf565c5
DG
3
4NAME
5----
6git-rev-list - Lists commit objects in reverse chronological order
7
8
9SYNOPSIS
10--------
353ce815 11[verse]
62b4698e
ŠN
12'git rev-list' [ \--max-count=<number> ]
13 [ \--skip=<number> ]
14 [ \--max-age=<timestamp> ]
15 [ \--min-age=<timestamp> ]
353ce815 16 [ \--sparse ]
2657420d 17 [ \--merges ]
353ce815 18 [ \--no-merges ]
6a6ebded
MG
19 [ \--min-parents=<number> ]
20 [ \--no-min-parents ]
21 [ \--max-parents=<number> ]
22 [ \--no-max-parents ]
25db465a 23 [ \--first-parent ]
93b74bca 24 [ \--remove-empty ]
29a6c3f8 25 [ \--full-history ]
0d2c9d67 26 [ \--not ]
353ce815 27 [ \--all ]
62b4698e
ŠN
28 [ \--branches[=<pattern>] ]
29 [ \--tags[=<pattern>] ]
30 [ \--remotes[=<pattern>] ]
31 [ \--glob=<glob-pattern> ]
cc243c3c 32 [ \--ignore-missing ]
42cabc34 33 [ \--stdin ]
27350891 34 [ \--quiet ]
765ac8ec 35 [ \--topo-order ]
353ce815 36 [ \--parents ]
e3c1500f 37 [ \--timestamp ]
b24bace5 38 [ \--left-right ]
59c8afdf
MG
39 [ \--left-only ]
40 [ \--right-only ]
cb56e309 41 [ \--cherry-mark ]
55a643ed 42 [ \--cherry-pick ]
e6604c35 43 [ \--encoding=<encoding> ]
bd95fcd3 44 [ \--(author|committer|grep)=<pattern> ]
5d6b3a9e
SG
45 [ \--regexp-ignore-case | -i ]
46 [ \--extended-regexp | -E ]
47 [ \--fixed-strings | -F ]
0adda936 48 [ \--date=(local|relative|default|iso|rfc|short) ]
ec579767 49 [ [\--objects | \--objects-edge] [ \--unpacked ] ]
353ce815
JF
50 [ \--pretty | \--header ]
51 [ \--bisect ]
457f08a0 52 [ \--bisect-vars ]
3ac9f612 53 [ \--bisect-all ]
d249b455 54 [ \--merge ]
9c5e66e9 55 [ \--reverse ]
4d12a471 56 [ \--walk-reflogs ]
8e64006e 57 [ \--no-walk ] [ \--do-walk ]
aa32939f 58 [ \--use-bitmap-index ]
353ce815 59 <commit>... [ \-- <paths>... ]
2cf565c5
DG
60
61DESCRIPTION
62-----------
8c02eee2 63
1a3d834f
JH
64List commits that are reachable by following the `parent` links from the
65given commit(s), but exclude commits that are reachable from the one(s)
66given with a '{caret}' in front of them. The output is given in reverse
67chronological order by default.
2cf565c5 68
1a3d834f
JH
69You can think of this as a set operation. Commits given on the command
70line form a set of commits that are reachable from any of them, and then
71commits reachable from any of the ones given with '{caret}' in front are
72subtracted from that set. The remaining commits are what comes out in the
73command's output. Various other options and paths parameters can be used
74to further limit the result.
75
76Thus, the following command:
8c02eee2
JF
77
78-----------------------------------------------------------------------
b1889c36 79 $ git rev-list foo bar ^baz
8c02eee2
JF
80-----------------------------------------------------------------------
81
1a3d834f
JH
82means "list all the commits which are reachable from 'foo' or 'bar', but
83not from 'baz'".
adcd3512 84
8c02eee2
JF
85A special notation "'<commit1>'..'<commit2>'" can be used as a
86short-hand for "{caret}'<commit1>' '<commit2>'". For example, either of
87the following may be used interchangeably:
69e0c256 88
8c02eee2 89-----------------------------------------------------------------------
b1889c36
JN
90 $ git rev-list origin..HEAD
91 $ git rev-list HEAD ^origin
8c02eee2
JF
92-----------------------------------------------------------------------
93
94Another special notation is "'<commit1>'...'<commit2>'" which is useful
95for merges. The resulting set of commits is the symmetric difference
0d2c9d67
RS
96between the two operands. The following two commands are equivalent:
97
8c02eee2 98-----------------------------------------------------------------------
b1889c36
JN
99 $ git rev-list A B --not $(git merge-base --all A B)
100 $ git rev-list A...B
8c02eee2
JF
101-----------------------------------------------------------------------
102
2de9b711 103'rev-list' is a very essential Git command, since it
8c02eee2
JF
104provides the ability to build and traverse commit ancestry graphs. For
105this reason, it has a lot of different options that enables it to be
0b444cdb
TR
106used by commands as different as 'git bisect' and
107'git repack'.
69e0c256 108
df8baa42
JF
109OPTIONS
110-------
8c02eee2 111
fdcf39e5
MV
112:git-rev-list: 1
113include::rev-list-options.txt[]
331b51d2
JN
114
115include::pretty-formats.txt[]
116
2cf565c5
DG
117GIT
118---
9e1f0a85 119Part of the linkgit:git[1] suite