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