HEAD~4^2 meaning

X~n means: The nth 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.

Reference

https://git-scm.com/docs/gitrevisions

Tags:

Git

Git Log