git relative reference - ghdrako/doc_snipets GitHub Wiki
Ancestry references can be used to specify a commit in git - is denoted by two special characters -
- ^ – Caret
- ~ – Tilde
Parents commit
HEAD^
HEAD~
HEAD~1
Grandparents commit
HEAD^^HEAD~2
9ec05ca
|
db7e87a
|
796ddb0
/\
/ \
0c5975a 4c9749e
\ /
\ /
1a56a81
HEAD^^^ --> ((HEAD^1)^1)^1
--> ((db7e87a)^1)^1
--> (796ddb0)^1
--> 0c5975a
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).
git branch -f main HEAD~3 # przenosi (na siłę) gałąź main trzy commity wstecz - za HEADa
Go forward
git reset HEAD@{1}
To go one commit forward in time. To go forward multiple commits, use HEAD@{2}, HEAD@{3}, etc.