什么是git show-ref -d上下文中的dereference

时间:2010-03-28 22:08:01

标签: git

以下是git show-ref -d的手册页。他们在底部也有一个例子。我仍然无法理解dereference的作用是什么?

1 个答案:

答案 0 :(得分:9)

在git中,“普通”(带注释,非轻量级)标记本身就是一个对象,包含元数据和它标记的对象的SHA1。在the git object model上的git社区书的部分中有一幅漂亮的图片(滚动到底部)。

因此,当您在普通标签上使用show-ref时,它通常会为您提供有关标签对象的信息。使用-d/--dereference选项,它会将标记取消引用到标记引用的对象中,并提供有关它的信息。

关于轻量级和带注释标签的说明,如果您不知道这一点:使用git tag <tag name>创建轻量级标签(即没有任何元数据提供选项,如{{1} },-a-s)。它根本不是标签对象,只是指向您标记的对象的ref。如果您提供其中一个选项,那么您将元数据附加到标记,因此git会创建一个标记对象来保存它。