为什么我应该关心轻量级与注释标签?

我去年从Subversion转到了Git,作为我的日常VCS,并且仍然在努力掌握“Git-think”的更精细的部分。

最近一直困扰我的那个是“轻量级”,而不是注释与签名标签。 看起来普遍接受的是,注释标签在所有实际用途上都优于轻量级标签,但我发现为什么这种情况下的解释总是归结为“因为最佳实践”或“因为它们不同” 。 不幸的是,那些不知道为什么是最佳实践或这些差异如何与我的Git使用相关的参数非常令人满意。

当我第一次切换到Git时,轻量级标签似乎是自切片面包以来最好的东西; 我可以指出一个提交并说“那是1.0”。 我无法理解标签如何超过这个标签,但我绝对不能相信世界上的Git专家更喜欢任意使用注释标签! 那么,喧哗是什么呢?

(奖励要点:为什么我需要签署标签?)

编辑

我已经成功地确信注释标签是一件好事 - 知道谁标记以及何时重要! 作为后续工作,有关良好标记注释的任何建议? 这两个git tag -am "tagging 1.0" 1.0并试图总结提交日志,因为以前的标签感觉像失去策略。


注释标签的最大优点是您知道是谁创建的。 就像提交,有时很高兴知道是谁做的。 如果您是开发人员,并且您看到v1.7.4已被标记(已准备好)并且您不太确定,那么您与谁交谈? 名字在注释标签中的人! (如果你生活在一个不信任的世界里,这也会让人们避免去标记他们不应该做的事情)。如果你是一个消费者,那么这个名字就是权威的印记:那是Junio Hamano说这个版本的git是在这里释放。

其他元数据也可能有帮助 - 有时知道该版本何时发布,而不仅仅是最终提交的时间是很好的。 有时候这个信息甚至可能是有用的。 也许它有助于解释特定标签的用途。 也许候选版本的标签包含一些状态/待办事项列表。

对签名进行签名几乎就像在签署任何其他内容 - 它为偏执狂提供了更高级别的安全性。 我们大多数人都不会使用它,但是如果您在将该软件放到计算机上之前确实想要验证所有内容,则可能需要它。

编辑:

至于在标签注释中写什么,你是对的 - 并不总是很有用。 对于版本号标记,隐含地理解它标记了该版本,并且如果您对其他地方的更新日志感到满意,则不需要在其中放置一个。 在这种情况下,最重要的是标签和日期。 我能想到的唯一另外一件事是某种测试套件的批准。 看看git.git的标签:他们都只是说一些像“Git 1.7.3 rc1”; 我们真正关心的是Junio Hamano的名字。

但是,对于名称不太明显的标签,信息可能变得更加重要。 我可以设想为单个用户/客户端标记特定的专用版本,一些重要的非版本里程碑,或者(如上所述)为具有额外信息的候选版本添加标签。 该消息则更有用。


我个人对这个话题的看法略有不同:

  • 带注释的标签是那些旨在为其他开发人员发布的标签,很可能是新版本(也应该签名)。 不仅要查看谁加了标签,加上何时加标签,还要了解为什么(通常是更改日志)。
  • 轻量级更适合私人使用,这意味着标记特殊的承诺能够再次找到它们。 可能是审查他们,检查他们测试什么或什么。

  • 默认情况下,Git只会将注释标签看作git describe等命令的基准。 将注释标签想象成对自己和其他人有持久含义的路标,而轻量级标签更像是以后自己找到的书签。 因此,注释标签值得用作参考,而轻量级标签不应该。

    签署标签是签名者身份的保证。 例如,它可以让用户验证他们选择的Linux内核代码与Linus Torvalds实际发布的代码相同。 签名也可以是签名者在该提交中为软件的质量和完整性作出保证的主张。

    链接地址: http://www.djcxy.com/p/27125.html

    上一篇: Why should I care about lightweight vs. annotated tags?

    下一篇: How can I list all lightweight tags?