Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当我必须在git中使用去引用时,为什么?_Git_Dereference - Fatal编程技术网

当我必须在git中使用去引用时,为什么?

当我必须在git中使用去引用时,为什么?,git,dereference,Git,Dereference,当我执行命令时,我们使用标记部署版本: git ls-remote -t origin 我能看到这样的画面 d5a0a2513d71dd94522039d9844daf8b8eed531f refs/tags/live-0.0.1 43a6228d4bf5839aa934b541c35d19b897b35056 refs/tags/live-0.0.1^{} a8662ef8bf021ea349dbf56970fd9f62f97093fb refs/tags/live-0.0

当我执行命令时,我们使用标记部署版本:

git ls-remote -t origin
我能看到这样的画面

d5a0a2513d71dd94522039d9844daf8b8eed531f    refs/tags/live-0.0.1
43a6228d4bf5839aa934b541c35d19b897b35056    refs/tags/live-0.0.1^{}
a8662ef8bf021ea349dbf56970fd9f62f97093fb    refs/tags/live-0.0.2
b48d63ff5af0c9f488f99c2066824c8891ae394e    refs/tags/live-0.0.3
我在本地代表处找不到此修订版D5A0A2513D71DD94522039D9844DAF88EED531F
请解释一下,我们什么时候必须使用解引用?也许有人知道为什么在我的情况下这么做了?(也许是我做的,但我不记得了,也许是在测试什么)以及为什么我在本地代表处看不到这个提交d5a0a2513d71dd94522039d9844daf8b8eed531f?在git中,SHA-1哈希用于标识所有对象,而不仅仅是提交。对象类型包括:

  • 树木
  • 斑点
  • 提交(修订)
  • 标签
并非所有标签都有自己的SHA-ID。有两种类型的标签:

  • 轻量级(没有消息,它们更像是无法移动的分支)
  • 注释(创建为单独的对象,因为标记消息必须保存在某个位置)
带注释的标记包含消息和提交SHA-ID,该ID作为取消引用的结果显示(
43a6228
,在您的情况下),并将其自身标识为ID为的对象(
d5a0a25
),这是检索标记消息所必需的


因此,如果要查找提交标识符,则始终需要取消引用标记。无论如何,任何标记名本身都是有效的提交标识符。

本地repo上是否有相同的标记?git tag-l live-0.0.1 live-0.0.2 live-0.0.3其提交是什么
git show ref live-0.0.1
@charlesB,真奇怪。对我来说,它还显示了两次第一个标记,第二个标记带有
^{}
git log
不显示来自第一个标记的提交,只显示第二个标记
git show ref
另一方面,正确显示了第一个标记的提交,但没有显示第二个标记的任何内容
git show ref live-0.0.1 D5A0A2513D71DD94522039D9844DAF88EED531F refs/tags/live-0.1
谢谢,要显示注释,我们可以使用命令
git tag-l-n1