跳至主要內容

git tag

Sankgao约 764 字大约 3 分钟命令集Git

描述

git tag 用于给特定的提交(commit)打上标签(tag)的命令。标签在 Git 中是一种静态引用,指向某个特定的提交。标签主要有两种类型:轻量标签(lightweight tag)和 附注标签(annotated tag)。

轻量标签只是一个指向特定提交的引用,没有额外的信息。而附注标签则是一个独立的 Git 对象,它除了包含指向特定提交的指针外,还包含了标签创建者的名字、邮箱、日期以及可选的注释信息,这些信息会被存储在 Git 数据库中并经过 GPG 签名验证。

使用 git tag 可以帮助开发者清晰地标记项目的重大版本、发布点或其他重要标签。例如:当开发团队完成一个稳定版本或重要开发标签时,他们可以使用 git tag 命令为该版本的提交打上标签,如 v1.0.0,以便后续可以方便地回溯、查看和管理代码库的历史状态。

选项

选项描述
-a, --annotate创建一个无符号、有注释的标签对象
-d, --delete删除指定标签
-n<num>指定在使用 -l 时打印多少行注释,默认是不打印任何注释行
-l, --list查看标签列表
-m <msg>, --message=<msg>给标签添加注释信息,如果给出多个 -m 选项,它们的值将作为单独的段落连接起来
-s, --sign制作一个 GPG 签名的标签,使用默认电子邮件地址的密钥
-u <key-id>, --local-user=<key-id>制作一个 GPG 签名的标签,使用给定的密钥
-v, --verify验证给定标签名称的 GPG 签名

示例

创建标签

例如:创建 v1.0.0 标签。

git tag v1.0.0

例如:为指定 commit id 创建 v1.0.0 标签。

git tag v1.0.0 <commit id>

创建带描述的标签

例如:创建带描述的标签。-a 用于创建带注释的标签;-m 添加注释信息。

git tag -a v1.0.0 -m "Version 1.0.0"

创建带签名的标签

例如:创建带签名的标签。-s 用于制作一个 GPG 签名的标签;-m 添加注释信息。

git tag -s -m "GPG-signed tag." v3.0.0

验证标签签名的有效性:

git tag -v v3.0.0

object 435f67c85d077d2ea31b4b0a3ea17ca0118194a5
type commit
tag v3.0.0
tagger zhangsan <zhangsan@example.com> 1719298048 +0800

GPG-signed tag..
gpg: Signature made Tue 25 Jun 2024 02:47:28 PM CST
gpg:                using RSA key 152CC437FCE6EC964E67BD33DEE43202523B1835
gpg:                issuer "zhangsan@example.com"
gpg: Good signature from "zhangsan <zhangsan@example.com>" [ultimate]

删除指定标签

例如:删除 v1.0.0 标签。

git tag -d v1.0.0

查看标签列表

例如:查看本地所有标签。

git tag -l
# 或
git tag

v1.0.0
v1.0.1
v1.1.0

例如:查看本地以 v1.0 开头的标签。

git tag -l v1.0*

例如:查看标签列表时打印注释行。

git tag -n1

v1.0.0          Version 1.0.0
v1.0.1          Version 1.0.1
v1.1.0          add test02.txt

指定提交创建标签

例如:为前一个提交,创建标签。

git tag v1.1 HEAD^

例如:为第五个提交,创建标签。

git tag v1.0 HEAD~5