我知道这两种命令之间的技术差异(没有-a的用法创建一个轻量级标签,它本质上是一个永远不会移动的分支,使用-a在Git的对象数据库中创建一个完整的对象,其中包括提交者的名字,电子邮件等).
问题是:我应该在我的项目中使用哪一个(例如,在Github上指示发布版本)?如果一个人比另一个人更受欢迎,为什么另一个选择存在呢?每个版本的用例有哪些?
Cas*_*bel 10
我会说,对于已发表的作品,您应该始终使用带注释的标签.额外的信息永远不会伤害你.
当你懒惰时,轻量级标签会让我觉得更多.也许是一个临时标签(只是确保你不小心推它;真的你可以只使用一个分支),或者可能是一个个人仓库,其中没有太多用于额外信息.我的猜测是很多小项目也这样做; 他们并不真正关心这些信息.可能只有一个集成商,没有人关心验证签名标签,它们只是发布版本的简单标记.(我仍然认为你应该更喜欢带注释的标签,以防万一!)
另一种思考方式:轻量级标签有点像写一个非常糟糕的提交消息.你真的不应该这样做,但有时人们会这样做,通常是在没有人看的时候.
每个版本的用例有哪些?
男人git-tag说:
带注释的标签用于发布,而轻量级标签用于私有或临时对象标签.
某些行为会以这种建议有用的方式区分它们,例如:
git describe
没有命令行选项只能看到带注释的标签也可以看看: