@@ -260,6 +260,9 @@ any of the given commits.
260
260
A commit's reachable set is the commit itself and the commits in
261
261
its ancestry chain.
262
262
263
+ There are several notations to specify a set of connected commits
264
+ (called a "revision range"), illustrated below.
265
+
263
266
264
267
Commit Exclusions
265
268
~~~~~~~~~~~~~~~~~
@@ -294,6 +297,26 @@ is a shorthand for 'HEAD..origin' and asks "What did the origin do since
294
297
I forked from them?" Note that '..' would mean 'HEAD..HEAD' which is an
295
298
empty range that is both reachable and unreachable from HEAD.
296
299
300
+ Commands that are specifically designed to take two distinct ranges
301
+ (e.g. "git range-diff R1 R2" to compare two ranges) do exist, but
302
+ they are exceptions. Unless otherwise noted, all "git" commands
303
+ that operate on a set of commits work on a single revision range.
304
+ In other words, writing two "two-dot range notation" next to each
305
+ other, e.g.
306
+
307
+ $ git log A..B C..D
308
+
309
+ does *not* specify two revision ranges for most commands. Instead
310
+ it will name a single connected set of commits, i.e. those that are
311
+ reachable from either B or D but are reachable from neither A or C.
312
+ In a linear history like this:
313
+
314
+ ---A---B---o---o---C---D
315
+
316
+ because A and B are reachable from C, the revision range specified
317
+ by these two dotted ranges is a single commit D.
318
+
319
+
297
320
Other <rev>{caret} Parent Shorthand Notations
298
321
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
299
322
Three other shorthands exist, particularly useful for merge commits,
0 commit comments