6

我很久以前问过这个问题,但我仍然不知道在这个答案中 ~ 和 ^ 是什么意思:

如果你在谈论一个远程分支,比如 origin/master,你可以使用 ~ 和 ^ 来引用相对于分支的祖先提交,就像你可以使用本地分支一样

有什么不同?

4

3 回答 3

6

^意思是“(第一)父母”。~类似,但它需要一个数字作为参数,基本上意味着“祖先”。因此,例如:

HEAD            = latest commit
HEAD^  = HEAD~1 = parent of latest commit
HEAD^^ = HEAD~2 = grandparent of latest commit
HEAD~100        = 100th ancestor of latest commit
于 2013-02-06T16:21:57.647 回答
4

正如手册页所述:

<rev>^, e.g. HEAD^, v1.5.1^0
修订参数的后缀 ^ 表示该提交对象的第一个父对象。^<n>表示第<n>th 父级(即<rev>^等同于<rev>^1)。[...]

<rev>~<n>, e.g. master~3
~<n>修订参数 的后缀表示作为指定提交对象的<n>第代祖先的提交对象,仅在第一个父对象之后。ie<rev>~3等价于<rev>^^^which 等价于<rev>^1^1^1.

于 2013-02-06T16:24:11.327 回答
4

根据此文档,波浪号 (~) 引用提交的线性祖先(父母、祖父母、曾祖父母),而插入符号 (^) 引用多个父母。在有多个合并祖先的情况下,每个合并源都是父级。

于 2013-02-06T16:24:15.173 回答