当我在Git中指定一个祖先提交对象时,我很困惑HEAD^和HEAD~。
两者都有一个像“ HEAD^3和”编号的版本HEAD~2。
他们对我来说看起来很相似或相同,但在代字和插入符号之间是否有区别?
之间的差HEAD^和HEAD~深受上找到的图示(通过Jon Loeliger)中描述http://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html。
这个文档对于初学者来说可能有些模糊,所以我在下面重复了这个插图:
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