【问题标题】:what is dereference in the context of git show-ref -d什么是 git show-ref -d 上下文中的取消引用
【发布时间】:2010-03-28 22:08:00
【问题描述】:

这是 git show-ref -d 的手册页。他们在底部也有一个例子。我仍然无法理解取消引用的作用?

【问题讨论】:

    标签: git


    【解决方案1】:

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

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

    还有一个关于轻量级与注释标签的说明,以防您不知道:轻量级标签是使用 git tag <tag name> 创建的(即没有任何提供元数据的选项,如 -a、@987654326 @ 或 -u)。它根本不是一个标记对象,只是一个直接指向您标记的对象的 ref。如果您提供这些选项之一,您将元数据附加到标签,因此 git 创建一个标签对象来保存它。

    【讨论】:

    • 很好的总结。+1 另见stackoverflow.com/questions/1194385/…:“如果您不知道/关心标签是标签对象还是轻量级标签,但只想查看可以使用的提交@ 987654328@ 或 git rev-parse v1.5.0^{} 以获取提交 id 的脚本化方式。"
    • VonC 的有用提示对于不太熟悉 git 的人来说可能看起来有点奇怪。 ^{} 后缀是标签的特殊符号;它的意思是“反复取消引用标签,直到找到标签以外的东西”——以防万一你做了一些疯狂的事情,比如用标签标记标签。
    • true,符号很奇怪 ;) 至于用标签标记标签,可以想象它可以帮助添加某种元数据(例如“促销级别”“拒绝”, 'tested', 'released', ...) 到现有的标记提交。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-16
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2011-10-02
    • 1970-01-01
    相关资源
    最近更新 更多