【问题标题】:git: Is an unannotated tag worse than a tag with a bad annotation?git:未注释的标签是否比带有错误注释的标签更糟糕?
【发布时间】:2011-01-18 09:34:20
【问题描述】:

您查看的每个 git 教程对标签都有明确的看法:应该始终使用带注释的标签,原因之一是 git describe 使用它们。

但是,我认为使用 git describe --tags 并没有什么不好的地方,它也将未注释的标签作为参考点。没有注释的标签还有什么不好的地方吗?

我问是因为我刚刚完成了一个 SVN 项目到 git 的转换。我实际上正在考虑为标签提供注释,但如果不是一个令人震惊的冗余“为我们的项目标记 1.5 版”消息(无论如何已经用作 SVN 注释),我应该放什么?

带注释的标签对我来说似乎是一件好事(您可以将事物标记为不同的作者,并且可能会给出简短的描述),但是即使在您没有任何有意义的东西要说的情况下,您也应该真正使用它们原始提交信息?

在哪些情况下没有注释的标签不被讨厌?

编辑:我不是在谈论签名注释标签(我理解在某些情况下使用签名标签的优势);我只关心 unannotated 和 unsigned annotated 的区别。

编辑 2:附加另一个问题以在一定程度上扩大范围,并可能获得有关现实生活中最佳括号的一些有见地的答案

什么时候使用未注释的标签,当你这样做时你会觉得不好吗?

【问题讨论】:

标签: git tags


【解决方案1】:

带注释的标签实际上是一个标签对象。它有一个作者、一个描述、一个时间戳并指向一个提交。

轻量级标签指向一个提交并且不包含其他信息。与标记相比,它与分支的共同点更多。

【讨论】:

  • 是的。但我的问题不是带注释的标签。我想知道是否应该使用它们,即使描述和作者都是多余的。
  • 我不认为描述和作者是多余的。标记发布的人不一定是编写代码的人(也不一定是提交代码的人)。我自己从来没有找到轻量级标签的好用处。
【解决方案2】:

man git-tag 说:

带注释的标签用于发布,而轻量级标签用于私有或临时对象标签。

所以基本上不要推送轻量级标签。

考虑到这一点,所有的行为设计选择都是有意义的:

  • 带注释的标签可以包含与它们指向的提交不同的消息、创建者和日期。因此,您可以使用它们来描述发布,而无需进行发布提交。

    轻量级标签没有额外的信息,也不需要它,因为你只会自己使用它来开发。

  • git push --follow-tags只会推送带注解的标签,不会发布你的本地标签。

  • git describe 回答问题:“此提交属于哪个版本?”,这是一个常见用例。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-14
    • 2020-10-10
    • 1970-01-01
    • 2015-08-25
    • 2014-11-12
    • 1970-01-01
    • 2016-03-04
    • 1970-01-01
    相关资源
    最近更新 更多