Git 标签(八)

8.标签

一、标签的作用

  • 标签:用于给仓库中的特定提交点(通常是版本发布,如 v1.0​、v2.0)打上永久标记。
  • 标签是一种引用,指向某个提交,与分支类似,但标签指向的提交通常不再移动

二、标签的类型

类型 命令 特点
轻量标签 git tag <tagname> 只是一个指向特定提交的引用,不包含额外元数据(如打标签者、日期、注解)。
附注标签 git tag -a <tagname> -m "message" 存储创建者姓名、电子邮件、日期,并可以包含注解信息,推荐使用。
PGP 签名标签 git tag -s <tagname> -m "message" 使用 GPG 私钥对标签进行签名,用于验证标签的真实性。

三、创建标签

1. 为当前提交(HEAD)打标签

# 轻量标签
git tag v1.0

# 附注标签(打开编辑器输入注解)
git tag -a v1.0

# 附注标签(直接指定注解消息)
git tag -a v1.0 -m "发布1.0版本"

# PGP 签名标签
git tag -s v1.0 -m "签名标签"

2. 为历史提交打标签

git tag -a v0.9 <commit-hash>
# 例如:git tag -a v0.9 85fc7e7

四、查看标签

命令 说明
git tag 列出所有标签
git tag -l "v1.*" 列出符合模式的标签(如所有 v1.x)
git show <tagname> 显示标签的详细信息(附注信息、指向的提交等)
git log --decorate 在提交历史中显示标签信息

示例:

$ git tag
v0.9
v1.0

$ git show v1.0

五、推送标签到远程仓库

默认 git push不会推送标签,需显式推送。

命令 说明
git push origin <tagname> 推送指定标签到远程仓库
git push origin --tags 推送所有本地标签到远程仓库

示例:

git push origin v1.0
git push origin --tags

六、删除标签

1. 删除本地标签

git tag -d <tagname>
# 例如:git tag -d v1.0

2. 删除远程标签

git push origin --delete <tagname>
# 或者(旧语法)
git push origin :refs/tags/<tagname>

七、实例

# 1. 创建轻量标签
git tag v1.0

# 2. 创建附注标签
git tag -a v1.1 -m "发布v1.1版本"

# 3. 查看所有标签
git tag

# 4. 查看附注标签信息
git show v1.1

# 5. 推送指定标签到远程
git push origin v1.0
git push origin v1.1

# 6. 推送所有标签
git push origin --tags

# 7. 本地删除标签
git tag -d v1.0

# 8. 远程删除标签
git push origin --delete v1.0