Skip to content

Commit eb53600

Browse files
committed
Merge branch 'mh/maint-revisions-doc' into maint
* mh/maint-revisions-doc: Enumerate revision range specifiers in the documentation Make <refname> documentation more consistent.
2 parents f52a386 + ca5ee2d commit eb53600

File tree

1 file changed

+37
-6
lines changed

1 file changed

+37
-6
lines changed

Documentation/revisions.txt

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,22 @@ blobs contained in a commit.
2424
object referenced by 'refs/heads/master'. If you
2525
happen to have both 'heads/master' and 'tags/master', you can
2626
explicitly say 'heads/master' to tell git which one you mean.
27-
When ambiguous, a '<name>' is disambiguated by taking the
27+
When ambiguous, a '<refname>' is disambiguated by taking the
2828
first match in the following rules:
2929

30-
. If '$GIT_DIR/<name>' exists, that is what you mean (this is usually
30+
. If '$GIT_DIR/<refname>' exists, that is what you mean (this is usually
3131
useful only for 'HEAD', 'FETCH_HEAD', 'ORIG_HEAD', 'MERGE_HEAD'
3232
and 'CHERRY_PICK_HEAD');
3333

34-
. otherwise, 'refs/<name>' if it exists;
34+
. otherwise, 'refs/<refname>' if it exists;
3535

3636
. otherwise, 'refs/tags/<refname>' if it exists;
3737

38-
. otherwise, 'refs/heads/<name>' if it exists;
38+
. otherwise, 'refs/heads/<refname>' if it exists;
3939

40-
. otherwise, 'refs/remotes/<name>' if it exists;
40+
. otherwise, 'refs/remotes/<refname>' if it exists;
4141

42-
. otherwise, 'refs/remotes/<name>/HEAD' if it exists.
42+
. otherwise, 'refs/remotes/<refname>/HEAD' if it exists.
4343
+
4444
'HEAD' names the commit on which you based the changes in the working tree.
4545
'FETCH_HEAD' records the branch which you fetched from a remote repository
@@ -218,13 +218,44 @@ and its parent commits exist. The 'r1{caret}@' notation means all
218218
parents of 'r1'. 'r1{caret}!' includes commit 'r1' but excludes
219219
all of its parents.
220220

221+
To summarize:
222+
223+
'<rev>'::
224+
Include commits that are reachable from (i.e. ancestors of)
225+
<rev>.
226+
227+
'{caret}<rev>'::
228+
Exclude commits that are reachable from (i.e. ancestors of)
229+
<rev>.
230+
231+
'<rev1>..<rev2>'::
232+
Include commits that are reachable from <rev2> but exclude
233+
those that are reachable from <rev1>.
234+
235+
'<rev1>\...<rev2>'::
236+
Include commits that are reachable from either <rev1> or
237+
<rev2> but exclude those that are reachable from both.
238+
239+
'<rev>{caret}@', e.g. 'HEAD{caret}@'::
240+
A suffix '{caret}' followed by an at sign is the same as listing
241+
all parents of '<rev>' (meaning, include anything reachable from
242+
its parents, but not the commit itself).
243+
244+
'<rev>{caret}!', e.g. 'HEAD{caret}!'::
245+
A suffix '{caret}' followed by an exclamation mark is the same
246+
as giving commit '<rev>' and then all its parents prefixed with
247+
'{caret}' to exclude them (and their ancestors).
248+
221249
Here are a handful of examples:
222250

223251
D G H D
224252
D F G H I J D F
225253
^G D H D
226254
^D B E I J F B
255+
B..C C
227256
B...C G H D E B C
228257
^D B C E I J F B C
258+
C I J F C
229259
C^@ I J F
260+
C^! C
230261
F^! D G H D F

0 commit comments

Comments
 (0)