附注标签是什么
-a 创建的标签是独立的 Git 对象,内含打标签者、日期与说明文字;-s 在此基础上再用 GPG 私钥签名。轻量标签只是一个指向提交的引用名,没有这些元信息。发布版本用附注标签,才能回答「谁在什么时候发布了什么」这种追溯问题。
基本信息
| 创建附注标签 | git tag -a v1.2.0 -m 'release 1.2.0' |
|---|---|
| 创建签名标签 | git tag -s v1.2.1 -m '说明',需要本机配好 GPG |
| 对象内容 | tagger 身份、打标签时间、说明信息 |
| 查看方式 | git show v1.2.0;git tag -n5 列出标签与说明前几行 |
| 推送方式 | git push origin <标签名>,标签默认不随分支推送 |
典型使用场景
- 发布版本锚点:部署与制品都以标签为依据回溯
- 需要验证来源的发布:用签名标签确认是发布者本人所为
- 为里程碑补一段说明,方便日后理解这个版本的意义
- 脚本读取标签说明自动生成变更日志初稿
- 区分内部测试标记与正式发布版本
常用示例
常用示例
git tag -a v1.2.0 -m 'release 1.2.0' # 创建附注标签
git tag -s v1.2.1 -m 'signed release' # 用 GPG 私钥签名
git show v1.2.0 # 查看 tagger、日期与说明
git tag -n5 # 列出标签并显示说明前 5 行
git push origin v1.2.0 # 只推送这一个标签
git push --follow-tags # 推分支时顺带推送附注标签
git verify-tag v1.2.1 # 校验签名,需先导入对应公钥三种标签对照
| 类型 | 是否独立对象 | 元信息 | 适用场景 |
|---|---|---|---|
| 轻量标签 | 否,只是引用 | 无 | 本地临时标记 |
| 附注标签 | 是 | tagger、日期、说明 | 发布版本 |
| 签名标签 | 是 | 以上加 GPG 签名 | 需要验证来源的发布 |
git describe 默认只识别附注标签,全用轻量标签的仓库拿不到「标签-距离-短哈希」形式;统一使用附注标签能让版本描述稳定可读。
附注标签与轻量标签可以混用,但同名标签不会共存;建议发布版本统一用附注标签,本地试验用轻量标签并在合并前清理,避免评审时把试验标记误认成正式版本。
标签说明支持多行:-m 可以重复出现,直接执行 git tag -a 不带 -m 会打开编辑器。写清本版本包含哪些变更与升级注意事项,比只写版本号对后来者更有帮助。