git 中 HEAD 两种写法 HEAD^ HEAD~1
G-D-B-A可以认为是主干,其他都是merge进来的其他分支节点。
G H I J
\ / \ /
D E F
\ | / \
\ | / |
\|/ |
B C
\ /
\ /
A
A = = A^0
B = A^ = A^1 = A~1
C = A^2 = A^2
D = A^^ = A^1^1 = A~2
E = B^2 = A^^2
F = B^3 = A^^3
G = A^^^ = A^1^1^1 = A~3
H = D^2 = B^^2 = A^^^2 = A~2^2
I = F^ = B^3^ = A^^3^
J = F^2 = B^3^2 = A^^3^2
HEAD == HEAD~0
HEAD^ == HEAD~1
HEAD^^ == HEAD~2
...
HEAD^^ == HEAD^1^1
...
HEAD^2 ... HEAD^n n > 2时,相当于父节点的兄弟姐妹 (同辈)
HEAD~1 ... HEAD~n n > 2时,相当于父节点的父亲 (上辈)
HEAD切换
git checkout HEAD (可以是版本号)