HEAD~ 表示祖先
HEAD^ 表示父母 (涉及分支合并)
git中HEAD^和HEAD~区别
^x: 尖头符号,形似箭头,表示要朝那个方向,始终是走一步,x 表示第几个岔路口,代表方向盘
~y: 波浪符号,表示要在该方向上走 y 步,始终沿着该方向,代表油门
当前节点的祖宗节点如下:
自己: HEAD, HEAD^0 或 HEAD~0
父亲: HEAD^, HEAD~
母亲: HEAD^2
爷爷: HEAD^~, HEAD~2, HEAD^^
奶奶: HEAD^^2, HEAD~^2
姥爷: HEAD^2~, HEAD2
姥姥: HEAD22
HEAD^主要是控制merge之后回退的方向
HEAD~才是回退的步数
^ 代表分支,根据形状可以理解为叉路口。
head^0代表当前所在提交,head^1表示第一叉路,head^2代表第二叉路,以此类推。
数字1可以省略,所以head^ === head^1,
head^^(两次分叉口都选择第一条道) == head^1^1 === head^1^ === head^^1。
~ 代表位于当前叉路上的上个提交, head~0 当前提交,
head~1 或者 head~上次提交,
head~~或者head~2,上上次提交,以此类推。数字1可以省略,所以head~1 === head~。