head^ && 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~。
查看提交图:git log --graph --pretty=oneline --abbrev-commit
* b21d2e9 (HEAD -> master) Merge branch 'dev2'|\ | * 1ef9e78 (dev2) dev2 第2次提交* | a7430f0 (dev) dev 第2次提交|/ * 1c1f2e4 dev2 第1次提交* 7f442c0 dev 第1次提交* 04ceccc 第3次提交* 5eb938f 第2次提交* c188500 第一次提交
head == head^0 == head~0 == head 以后提交 b21d2e9
head^ == head~ == head^1 == head~ a7430f0
head^^ == head^1^1 == head~2 == head~~ 1c1f2e4
head^2 1ef9e78(抉择第二岔路)
head^2^ === head^2~ 1c1f2e4
head^3 unknown revision or path not in the working tree 没有第三条叉路