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.02. 删除远程标签
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