git:未注释的标签是否比带有错误注释的标签更糟糕?

时间:2010-02-18 15:56:37

标签: git tags

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

但是,我没有看到使用git describe --tags时出现任何问题,{{1}}也将未注释的标签作为参考点。对于未注释的标签,还有什么其他被认为是坏的吗?

我问,因为我刚刚将SVN项目转换为git。我实际上正在考虑为标签提供一个注释,但是如果不是一个令人担忧的多余的“我们项目的标记版本1.5”消息(无论如何已经被用作SVN注释),我应该放在那里?

带注释的标签对我来说似乎是一件好事(你可以将其标记为不同的作者并可能给出一个简短的描述),但是如果你没有任何有意义的话,你应该真的使用它们吗?原始提交消息?

在哪些情况下,未注释的标签没有不受欢迎?

编辑:我不是在谈论已签名的注释标签(我理解在某些情况下签名标签的优势);我只关心未注释和无符号注释之间的区别。

编辑2 :添加另一个问题以扩大范围,并可能获得有关现实生活中最佳实践的一些有见地的答案

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

2 个答案:

答案 0 :(得分:4)

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

轻量级标记指向提交,不包含其他信息。分支与标记有更多共同之处。

答案 1 :(得分:4)

man git-tag说:

  

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

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

当您考虑到这一点时,所有行为设计选择都有意义:

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

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

  • git push --follow-tags只会推送带注释的标签,以便不发布您的本地代码。

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

另见:

相关问题