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.