在什么情况下我应该在git tag命令中添加-a标志?

j4m*_*mie 26 git github

我知道这两种命令之间的技术差异(没有-a的用法创建一个轻量级标签,它本质上是一个永远不会移动的分支,使用-a在Git的对象数据库中创建一个完整的对象,其中包括提交者的名字,电子邮件等).

问题是:我应该在我的项目中使用哪一个(例如,在Github上指示发布版本)?如果一个人比另一个人更受欢迎,为什么另一个选择存在呢?每个版本的用例有哪些?

Cas*_*bel 10

我会说,对于已发表的作品,您应该始终使用带注释的标签.额外的信息永远不会伤害你.

当你懒惰时,轻量级标签会让我觉得更多.也许是一个临时标签(只是确保你不小心推它;真的你可以只使用一个分支),或者可能是一个个人仓库,其中没有太多用于额外信息.我的猜测是很多小项目也这样做; 他们并不真正关心这些信息.可能只有一个集成商,没有人关心验证签名标签,它们只是发布版本的简单标记.(我仍然认为你应该更喜欢带注释的标签,以防万一!)

另一种思考方式:轻量级标签有点像写一个非常糟糕的提交消息.你真的不应该这样做,但有时人们会这样做,通常是在没有人看的时候.


Cir*_*四事件 6

每个版本的用例有哪些?

男人git-tag说:

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

某些行为会以这种建议有用的方式区分它们,例如:

  • 带注释的标签可以包含与它们指向的提交不同的消息,创建者和日期.因此,您可以使用它们来描述发布而无需进行发布提交.轻量级标签没有这些额外信息.
  • git push --follow-tags只会推送带注释的标签
  • git describe 没有命令行选项只能看到带注释的标签

也可以看看:


kan*_*aka 5

如果您想推送/获取它们,那么您应该使用带注释的标签。