Git 用吉特表示的插入符号点符号

Git 用吉特表示的插入符号点符号,git,Git,以下git语法是什么意思:6df7640^.. 我在那里看到过: 我在中查找了此语法描述,但没有找到答案。插入符号表示以前的版本。表示“从到”,省略“到”部分只是取头 因此,6df7640^..表示从6df7640的父提交到头插入符号表示以前的版本。表示“从到”,省略“到”部分只是取头 因此,6df7640^..意味着从6df7640的父提交到头比blackbuild所述的要复杂一些。这本手册包罗万象,但它的语言有点枯燥,让我们来详细阐述一下 插入符号 插入符号“^”实际上意味着它所遵循的提交的

以下git语法是什么意思:
6df7640^..
我在那里看到过:


我在中查找了此语法描述,但没有找到答案。

插入符号表示以前的版本<代码>。表示“从到”,省略“到”部分只是取头


因此,
6df7640^..
表示从
6df7640
的父提交到

插入符号表示以前的版本<代码>。
表示“从到”,省略“到”部分只是取头


因此,
6df7640^..
意味着从
6df7640
的父提交到

blackbuild
所述的要复杂一些。这本手册包罗万象,但它的语言有点枯燥,让我们来详细阐述一下

插入符号 插入符号“
^
”实际上意味着它所遵循的提交的第一个父级

其思想是合并提交有多个父级(Git甚至支持所谓的“octopus”合并,即多个分支合并到另一个分支中,从而产生的合并提交有两个以上的父级)

如果要选择第二个父对象(合并的对象),可以使用
^2
,第三个父对象可以使用
^3
,依此类推

范围运算符
A..B
符号也不是像“从A到B”这样简单的意思。手册将其定义为:

包括可从
访问的提交,但排除可从
访问的提交

…略高于此

^

排除可从(即的祖先)访问的提交

如你所见,既没有提到“从”也没有提到“到”

这是因为Git history是一个有向无环图,而不仅仅是提交的时间线,因此Git history遍历命令(接受这样的范围)操作提交集,而不是时间线。现在,“提交可访问性”的概念来了:如果您指向存储库历史图上的任意提交,您可能会从那里向下跟踪该提交的父提交、其父提交等等。因此,给定历史的DAG上的一个提交,您可以获得从该DAG可访问的所有提交的子图。从逻辑上讲,所有这些提交构成了由该“锚”提交维护的代码库的状态

现在,如果您想限制形成子图的提交集,比如说,出于历史检查的目的,您必须删除该子图中不感兴趣的部分。这正是上面提到的前缀
^
排除运算符所做的

因此,
是颠覆难民的另一种形式。第二个更通用的表单之所以有趣,是因为

...-A-B-C-D-E-F
...-X-Y-Z
         \
...-A-B-C-D-E-F
        /
 ...-U-W
这两种形式,
B..E
E^B
对于更复杂的情况产生完全相同的结果,如

...-A-B-C-D-E-F
...-X-Y-Z
         \
...-A-B-C-D-E-F
        /
 ...-U-W
(当
C
D
被合并提交时)它们将产生不同的结果,因为
B..E
不会修剪锚定在
Z
W
上的子图,如果您也想修剪它们,您将使用
E^B^Z^W
,这是“两点”形式无法做到的

范围运算符和
git diff
另一件需要记住的事情是,对于
git diff
操作符的含义与诸如
git log
之类的历史遍历命令的含义不同。这是一个微妙的区别,特别是如果在
的左侧使用类似
^
的内容

不同之处在于,
git diff
总是只考虑两个修订:对于
A..B
,它只考虑
A
B
,不关心它们之间的提交是什么,也不关心
A
B
在拓扑上是如何相关的,即使它们是完全相关的(一个可以从另一个访问)


因此,在使用
git diff
时,最好总是使用两个单独的修订参数,比如
git diff A B
来比较
A
B
,这比
blackbuild
所述的要复杂一些。这本手册包罗万象,但它的语言有点枯燥,让我们来详细阐述一下

插入符号 插入符号“
^
”实际上意味着它所遵循的提交的第一个父级

其思想是合并提交有多个父级(Git甚至支持所谓的“octopus”合并,即多个分支合并到另一个分支中,从而产生的合并提交有两个以上的父级)

如果要选择第二个父对象(合并的对象),可以使用
^2
,第三个父对象可以使用
^3
,依此类推

范围运算符
A..B
符号也不是像“从A到B”这样简单的意思。手册将其定义为:

包括可从
访问的提交,但排除可从
访问的提交

…略高于此

^

排除可从(即的祖先)访问的提交

如你所见,既没有提到“从”也没有提到“到”

这是因为Git history是一个有向无环图,而不仅仅是提交的时间线,因此Git history遍历命令(接受这样的范围)操作提交集,而不是时间线。现在,“提交可访问性”的概念来了:如果您指向存储库历史图上的任意提交,您可能会从那里向下跟踪该提交的父提交、其父提交等等。因此,给定历史的DAG上的一个提交,您可以获得从该DAG可访问的所有提交的子图。从逻辑上讲,所有这些提交构成了代码基主代码的状态