git HEAD 说明 HEAD^ HEAD~1

571 阅读1分钟

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 (可以是版本号)