In a Udacity lesson covering relative commit references, it says:
^ indicates the parent commit, ~ indicates the first parent commit
The m
X~n
means: The n
th ancestor of X
.
X^
means: The parent of X
. This is equivalent to X~1
.
If X
has more than one parent, one needs to distinguish between them when using the ^
notation. So X^1
would be the first parent, X^2
would be the second parent, and so on. X^
is equivalent to X^1
(and also equivalent to X~1
).
In your example, starting from commit 9ec05ca
, which is HEAD
:
db7e87a
is HEAD~1
(or alternatively HEAD^
).796ddb0
is HEAD~2
(or alternatively HEAD^^
).1a56a81
is HEAD~4
(or alternatively HEAD^^^^
, but nobody would use that).e014d91
, being the first parent of 1a56a81
, is HEAD~5
, or HEAD~4^
, or HEAD~4^1
.f69811c
, being the second parent of 1a56a81
, is HEAD~4^2
.https://git-scm.com/docs/gitrevisions