去年,我从 Subversion 转向 Git 作为我的日常 VCS,并且仍在努力掌握“Git-think”的精髓。
最近困扰我的是“轻量级”与带注释和签名的标签。似乎人们普遍认为,在所有实际用途中,带注释的标签都优于轻量级标签,但我找到的解释为什么会出现这种情况似乎总是归结为以下两种情况之一:“因为最佳实践” or “因为他们不一样”。不幸的是,这些都是在不知情的情况下非常令人不满意的论点why这是最佳实践或这些差异如何relevant我的 Git 使用情况。
当我第一次转向 Git 时,轻量级标签似乎是自切片面包以来最好的东西;我可以指向一个提交并说“那是 1.0”。我很难理解标签如何需要比这更多,但我当然不能相信世界上的 Git 专家任意喜欢带注释的标签!那么这一切的喧嚣是什么呢?
(奖励积分:为什么我需要签署标签?)
EDIT
我去过成功说服带注释的标签是一件好事——知道谁被标记以及何时被标记很重要!作为后续,关于好的标签注释有什么建议吗?两个都git tag -am "tagging 1.0" 1.0
并尝试总结提交日志,因为前一个标签感觉像是失去了策略。
带注释的标签的一大优点是您知道它是谁创建的。就像提交一样,有时很高兴知道是谁做的。如果您是一名开发人员,并且看到 v1.7.4 已被标记(声明就绪),但您不太确定,您会与谁交谈?名字在标注标签中的人! (如果你生活在一个不信任的世界里,这也会让人们无法逃脱标记他们不应该标记的东西。)如果你是一个消费者,这个名字就是一个权威的印记:Junio Hamano 说这个版本的 git 特此声明释放。
其他元数据也很有帮助 - 有时很高兴知道该版本何时发布,而不仅仅是最终提交的时间。有时该消息甚至可能有用。也许它有助于解释该特定标签的用途。也许候选版本的标签包含一些状态/待办事项列表。
签署标签与签署其他任何东西非常相似 - 它为偏执者提供了更高级别的安全性。我们大多数人都不会使用它,但如果您确实想在将该软件安装到计算机上之前验证所有内容,您可能会需要它。
Edit:
至于在标签注释中写什么,你是对的 - 并不总是有太多有用的东西可说。对于版本号标签,它隐式地理解为它标记了该版本,如果您对其他地方的更改日志感到满意,则无需将其放在那里。在这种情况下,标记器和日期确实是最重要的。我唯一能想到的就是测试套件的某种批准印章。看看 git.git 的标签:它们都只是说“Git 1.7.3 rc1”;我们真正关心的是它们上面有 Junio Hamano 的名字。
然而,对于命名不太明显的标签,该消息可能会变得更加重要。我可以设想为单个用户/客户端标记特定的专用版本、一些重要的非版本里程碑,或者(如上所述)带有额外信息的候选版本。那么该消息就更有用了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)