Git ^ 和 ~ 的区别
我们可以看到,最新的commit为HEAD,那么HEAD的前一个commit就为HEAD1,HEAD的前两个commit就为HEAD2。。。
注意从HEAD3上新开了一个分支,并出现一个蓝色的commit。之后进行merge操作,蓝色的commit和HEAD2合并成一个新的commit:HEAD~1。
此时我们可以看到HEAD1实际上拥有了两个parent,第一个parents是HEAD2,第二个parent则是蓝色的新分支上的commit,那么此时就是^符号使用的场景了。
符号表示某个commit父commit所在层中的第几个parent,由于HEAD~1拥有两个父亲commit,因此这儿就需要使用符号表示图中蓝色的commit,即HEAD~1^2。