]>
Commit | Line | Data |
---|---|---|
fdcf39e5 MV |
1 | Commit Formatting |
2 | ~~~~~~~~~~~~~~~~~ | |
3 | ||
4 | ifdef::git-rev-list[] | |
5 | Using these options, linkgit:git-rev-list[1] will act similar to the | |
6 | more specialized family of commit log tools: linkgit:git-log[1], | |
7 | linkgit:git-show[1], and linkgit:git-whatchanged[1] | |
8 | endif::git-rev-list[] | |
9 | ||
10 | include::pretty-options.txt[] | |
11 | ||
12 | --relative-date:: | |
13 | ||
14 | Synonym for `--date=relative`. | |
15 | ||
26b4d003 | 16 | --date={relative,local,default,iso,rfc,short}:: |
fdcf39e5 MV |
17 | |
18 | Only takes effect for dates shown in human-readable format, such | |
dd0ffd5b HO |
19 | as when using "--pretty". `log.date` config variable sets a default |
20 | value for log command's --date option. | |
fdcf39e5 MV |
21 | + |
22 | `--date=relative` shows dates relative to the current time, | |
23 | e.g. "2 hours ago". | |
24 | + | |
25 | `--date=local` shows timestamps in user's local timezone. | |
26 | + | |
27 | `--date=iso` (or `--date=iso8601`) shows timestamps in ISO 8601 format. | |
28 | + | |
29 | `--date=rfc` (or `--date=rfc2822`) shows timestamps in RFC 2822 | |
30 | format, often found in E-mail messages. | |
31 | + | |
32 | `--date=short` shows only date but not time, in `YYYY-MM-DD` format. | |
33 | + | |
34 | `--date=default` shows timestamps in the original timezone | |
35 | (either committer's or author's). | |
36 | ||
adf60f14 | 37 | ifdef::git-rev-list[] |
fdcf39e5 MV |
38 | --header:: |
39 | ||
40 | Print the contents of the commit in raw-format; each record is | |
41 | separated with a NUL character. | |
adf60f14 | 42 | endif::git-rev-list[] |
fdcf39e5 MV |
43 | |
44 | --parents:: | |
45 | ||
46 | Print the parents of the commit. | |
47 | ||
adf60f14 | 48 | ifdef::git-rev-list[] |
fdcf39e5 MV |
49 | --timestamp:: |
50 | Print the raw commit timestamp. | |
adf60f14 | 51 | endif::git-rev-list[] |
fdcf39e5 MV |
52 | |
53 | --left-right:: | |
54 | ||
55 | Mark which side of a symmetric diff a commit is reachable from. | |
56 | Commits from the left side are prefixed with `<` and those from | |
57 | the right with `>`. If combined with `--boundary`, those | |
58 | commits are prefixed with `-`. | |
59 | + | |
60 | For example, if you have this topology: | |
61 | + | |
62 | ----------------------------------------------------------------------- | |
63 | y---b---b branch B | |
64 | / \ / | |
65 | / . | |
66 | / / \ | |
67 | o---x---a---a branch A | |
68 | ----------------------------------------------------------------------- | |
69 | + | |
70 | you would get an output line this: | |
71 | + | |
72 | ----------------------------------------------------------------------- | |
73 | $ git rev-list --left-right --boundary --pretty=oneline A...B | |
74 | ||
75 | >bbbbbbb... 3rd on b | |
76 | >bbbbbbb... 2nd on b | |
77 | <aaaaaaa... 3rd on a | |
78 | <aaaaaaa... 2nd on a | |
79 | -yyyyyyy... 1st on b | |
80 | -xxxxxxx... 1st on a | |
81 | ----------------------------------------------------------------------- | |
82 | ||
7fefda5c AS |
83 | --graph:: |
84 | ||
85 | Draw a text-based graphical representation of the commit history | |
86 | on the left hand side of the output. This may cause extra lines | |
87 | to be printed in between commits, in order for the graph history | |
88 | to be drawn properly. | |
89 | + | |
90 | This implies the '--topo-order' option by default, but the | |
91 | '--date-order' option may also be specified. | |
92 | ||
fdcf39e5 MV |
93 | Diff Formatting |
94 | ~~~~~~~~~~~~~~~ | |
95 | ||
96 | Below are listed options that control the formatting of diff output. | |
97 | Some of them are specific to linkgit:git-rev-list[1], however other diff | |
98 | options may be given. See linkgit:git-diff-files[1] for more options. | |
99 | ||
100 | -c:: | |
101 | ||
102 | This flag changes the way a merge commit is displayed. It shows | |
103 | the differences from each of the parents to the merge result | |
104 | simultaneously instead of showing pairwise diff between a parent | |
105 | and the result one at a time. Furthermore, it lists only files | |
106 | which were modified from all parents. | |
107 | ||
108 | --cc:: | |
109 | ||
110 | This flag implies the '-c' options and further compresses the | |
b1264da8 JH |
111 | patch output by omitting uninteresting hunks whose contents in |
112 | the parents have only two variants and the merge result picks | |
113 | one of them without modification. | |
fdcf39e5 MV |
114 | |
115 | -r:: | |
116 | ||
117 | Show recursive diffs. | |
118 | ||
119 | -t:: | |
120 | ||
121 | Show the tree objects in the diff output. This implies '-r'. | |
122 | ||
123 | Commit Limiting | |
124 | ~~~~~~~~~~~~~~~ | |
125 | ||
126 | Besides specifying a range of commits that should be listed using the | |
127 | special notations explained in the description, additional commit | |
128 | limiting may be applied. | |
129 | ||
130 | -- | |
131 | ||
3240240f SB |
132 | -n 'number':: |
133 | --max-count='number':: | |
fdcf39e5 MV |
134 | |
135 | Limit the number of commits output. | |
136 | ||
137 | --skip='number':: | |
138 | ||
139 | Skip 'number' commits before starting to show the commit output. | |
140 | ||
3240240f SB |
141 | --since='date':: |
142 | --after='date':: | |
fdcf39e5 MV |
143 | |
144 | Show commits more recent than a specific date. | |
145 | ||
3240240f SB |
146 | --until='date':: |
147 | --before='date':: | |
fdcf39e5 MV |
148 | |
149 | Show commits older than a specific date. | |
150 | ||
56b6d01d | 151 | ifdef::git-rev-list[] |
3240240f SB |
152 | --max-age='timestamp':: |
153 | --min-age='timestamp':: | |
fdcf39e5 MV |
154 | |
155 | Limit the commits output to specified time range. | |
56b6d01d | 156 | endif::git-rev-list[] |
fdcf39e5 | 157 | |
3240240f SB |
158 | --author='pattern':: |
159 | --committer='pattern':: | |
fdcf39e5 MV |
160 | |
161 | Limit the commits output to ones with author/committer | |
162 | header lines that match the specified pattern (regular expression). | |
163 | ||
164 | --grep='pattern':: | |
165 | ||
166 | Limit the commits output to ones with log message that | |
167 | matches the specified pattern (regular expression). | |
168 | ||
3240240f SB |
169 | -i:: |
170 | --regexp-ignore-case:: | |
fdcf39e5 MV |
171 | |
172 | Match the regexp limiting patterns without regard to letters case. | |
173 | ||
3240240f SB |
174 | -E:: |
175 | --extended-regexp:: | |
fdcf39e5 MV |
176 | |
177 | Consider the limiting patterns to be extended regular expressions | |
178 | instead of the default basic regular expressions. | |
179 | ||
3240240f SB |
180 | -F:: |
181 | --fixed-strings:: | |
dc1c0fff JN |
182 | |
183 | Consider the limiting patterns to be fixed strings (don't interpret | |
184 | pattern as a regular expression). | |
185 | ||
fdcf39e5 MV |
186 | --remove-empty:: |
187 | ||
188 | Stop when a given path disappears from the tree. | |
189 | ||
190 | --full-history:: | |
191 | ||
192 | Show also parts of history irrelevant to current state of a given | |
193 | path. This turns off history simplification, which removed merges | |
194 | which didn't change anything at all at some child. It will still actually | |
195 | simplify away merges that didn't change anything at all into either | |
196 | child. | |
197 | ||
198 | --no-merges:: | |
199 | ||
200 | Do not print commits with more than one parent. | |
201 | ||
202 | --first-parent:: | |
203 | Follow only the first parent commit upon seeing a merge | |
204 | commit. This option can give a better overview when | |
205 | viewing the evolution of a particular topic branch, | |
206 | because merges into a topic branch tend to be only about | |
207 | adjusting to updated upstream from time to time, and | |
208 | this option allows you to ignore the individual commits | |
209 | brought in to your history by such a merge. | |
210 | ||
211 | --not:: | |
212 | ||
213 | Reverses the meaning of the '{caret}' prefix (or lack thereof) | |
214 | for all following revision specifiers, up to the next '--not'. | |
215 | ||
216 | --all:: | |
217 | ||
218 | Pretend as if all the refs in `$GIT_DIR/refs/` are listed on the | |
219 | command line as '<commit>'. | |
220 | ||
adf60f14 | 221 | ifdef::git-rev-list[] |
fdcf39e5 MV |
222 | --stdin:: |
223 | ||
224 | In addition to the '<commit>' listed on the command | |
225 | line, read them from the standard input. | |
226 | ||
227 | --quiet:: | |
228 | ||
229 | Don't print anything to standard output. This form | |
230 | is primarily meant to allow the caller to | |
231 | test the exit status to see if a range of objects is fully | |
232 | connected (or not). It is faster than redirecting stdout | |
233 | to /dev/null as the output does not have to be formatted. | |
adf60f14 | 234 | endif::git-rev-list[] |
fdcf39e5 MV |
235 | |
236 | --cherry-pick:: | |
237 | ||
238 | Omit any commit that introduces the same change as | |
239 | another commit on the "other side" when the set of | |
240 | commits are limited with symmetric difference. | |
241 | + | |
242 | For example, if you have two branches, `A` and `B`, a usual way | |
243 | to list all commits on only one side of them is with | |
244 | `--left-right`, like the example above in the description of | |
245 | that option. It however shows the commits that were cherry-picked | |
246 | from the other branch (for example, "3rd on b" may be cherry-picked | |
247 | from branch A). With this option, such pairs of commits are | |
248 | excluded from the output. | |
249 | ||
3240240f SB |
250 | -g:: |
251 | --walk-reflogs:: | |
fdcf39e5 MV |
252 | |
253 | Instead of walking the commit ancestry chain, walk | |
254 | reflog entries from the most recent one to older ones. | |
255 | When this option is used you cannot specify commits to | |
256 | exclude (that is, '{caret}commit', 'commit1..commit2', | |
257 | nor 'commit1...commit2' notations cannot be used). | |
258 | + | |
259 | With '\--pretty' format other than oneline (for obvious reasons), | |
260 | this causes the output to have two extra lines of information | |
261 | taken from the reflog. By default, 'commit@\{Nth}' notation is | |
262 | used in the output. When the starting commit is specified as | |
18a2197e | 263 | 'commit@\{now}', output also uses 'commit@\{timestamp}' notation |
fdcf39e5 MV |
264 | instead. Under '\--pretty=oneline', the commit message is |
265 | prefixed with this information on the same line. | |
e534735a | 266 | This option cannot be combined with '\--reverse'. |
fdcf39e5 MV |
267 | See also linkgit:git-reflog[1]. |
268 | ||
269 | --merge:: | |
270 | ||
271 | After a failed merge, show refs that touch files having a | |
272 | conflict and don't exist on all heads to merge. | |
273 | ||
274 | --boundary:: | |
275 | ||
276 | Output uninteresting commits at the boundary, which are usually | |
277 | not shown. | |
278 | ||
3240240f SB |
279 | --dense:: |
280 | --sparse:: | |
fdcf39e5 MV |
281 | |
282 | When optional paths are given, the default behaviour ('--dense') is to | |
283 | only output commits that changes at least one of them, and also ignore | |
284 | merges that do not touch the given paths. | |
285 | ||
286 | Use the '--sparse' flag to makes the command output all eligible commits | |
287 | (still subject to count and age limitation), but apply merge | |
288 | simplification nevertheless. | |
289 | ||
290 | ifdef::git-rev-list[] | |
291 | --bisect:: | |
292 | ||
293 | Limit output to the one commit object which is roughly halfway between | |
294 | the included and excluded commits. Thus, if | |
295 | ||
296 | ----------------------------------------------------------------------- | |
297 | $ git-rev-list --bisect foo ^bar ^baz | |
298 | ----------------------------------------------------------------------- | |
299 | ||
300 | outputs 'midpoint', the output of the two commands | |
301 | ||
302 | ----------------------------------------------------------------------- | |
303 | $ git-rev-list foo ^midpoint | |
304 | $ git-rev-list midpoint ^bar ^baz | |
305 | ----------------------------------------------------------------------- | |
306 | ||
307 | would be of roughly the same length. Finding the change which | |
308 | introduces a regression is thus reduced to a binary search: repeatedly | |
309 | generate and test new 'midpoint's until the commit chain is of length | |
310 | one. | |
311 | ||
312 | --bisect-vars:: | |
313 | ||
314 | This calculates the same as `--bisect`, but outputs text ready | |
315 | to be eval'ed by the shell. These lines will assign the name of | |
316 | the midpoint revision to the variable `bisect_rev`, and the | |
317 | expected number of commits to be tested after `bisect_rev` is | |
318 | tested to `bisect_nr`, the expected number of commits to be | |
319 | tested if `bisect_rev` turns out to be good to `bisect_good`, | |
320 | the expected number of commits to be tested if `bisect_rev` | |
321 | turns out to be bad to `bisect_bad`, and the number of commits | |
322 | we are bisecting right now to `bisect_all`. | |
323 | ||
324 | --bisect-all:: | |
325 | ||
326 | This outputs all the commit objects between the included and excluded | |
327 | commits, ordered by their distance to the included and excluded | |
328 | commits. The farthest from them is displayed first. (This is the only | |
329 | one displayed by `--bisect`.) | |
330 | ||
331 | This is useful because it makes it easy to choose a good commit to | |
332 | test when you want to avoid to test some of them for some reason (they | |
333 | may not compile for example). | |
334 | ||
335 | This option can be used along with `--bisect-vars`, in this case, | |
336 | after all the sorted commit objects, there will be the same text as if | |
337 | `--bisect-vars` had been used alone. | |
338 | endif::git-rev-list[] | |
339 | ||
340 | -- | |
341 | ||
342 | Commit Ordering | |
343 | ~~~~~~~~~~~~~~~ | |
344 | ||
345 | By default, the commits are shown in reverse chronological order. | |
346 | ||
347 | --topo-order:: | |
348 | ||
349 | This option makes them appear in topological order (i.e. | |
350 | descendant commits are shown before their parents). | |
351 | ||
352 | --date-order:: | |
353 | ||
354 | This option is similar to '--topo-order' in the sense that no | |
355 | parent comes before all of its children, but otherwise things | |
356 | are still ordered in the commit timestamp order. | |
357 | ||
358 | --reverse:: | |
359 | ||
360 | Output the commits in reverse order. | |
361 | Cannot be combined with '\--walk-reflogs'. | |
362 | ||
363 | Object Traversal | |
364 | ~~~~~~~~~~~~~~~~ | |
365 | ||
366 | These options are mostly targeted for packing of git repositories. | |
367 | ||
368 | --objects:: | |
369 | ||
370 | Print the object IDs of any object referenced by the listed | |
371 | commits. '--objects foo ^bar' thus means "send me | |
372 | all object IDs which I need to download if I have the commit | |
373 | object 'bar', but not 'foo'". | |
374 | ||
375 | --objects-edge:: | |
376 | ||
377 | Similar to '--objects', but also print the IDs of excluded | |
378 | commits prefixed with a "-" character. This is used by | |
379 | linkgit:git-pack-objects[1] to build "thin" pack, which records | |
380 | objects in deltified form based on objects contained in these | |
381 | excluded commits to reduce network traffic. | |
382 | ||
383 | --unpacked:: | |
384 | ||
385 | Only useful with '--objects'; print the object IDs that are not | |
386 | in packs. | |
387 | ||
388 | --no-walk:: | |
389 | ||
390 | Only show the given revs, but do not traverse their ancestors. | |
391 | ||
392 | --do-walk:: | |
393 | ||
394 | Overrides a previous --no-walk. |