git tag命令用于操作Git的tag对象,如进行创建、删除、列表和验证等。
1. Git中的tags分类
Git中的tags总体可以分为两类:
1) "annotated" tags
即使用git tag -a|-s|-u <keyid>命令创建的tags。
一个"annotated" tags意味着一次正式的发布。
"annotated" tags对象中包含创建日期,创建者名字和邮箱、tag message等信息,有的tags还包含GnuPG签名信息。
根据"annotated" tags中是否包含GnuPG签名信息,又可以分为:
- signed "annotated" tags,包含GnuPG签名信息
- unsigned "annotated" tags,不包含GnuPG签名信息
使用git tag -s|-u <keyid>命令创建的tags
2) "lightweight" tags
使用git tag <tagname>创建的tags。
一个"lightweight" tags意味着一个私有的、临时的标签。
"lightweight" tag仅仅是为一个commit对象起了个别名,不包含任何其他信息。
2. git tag命令
1) 创建tag的命令格式
git tag [-a | -s | -u <keyid>] [-f] [-m <msg> | -F <file>] <tagname> [<commit> | <object>]
2) 删除tag的命令格式:
git tag -d <tagname>…
3) 查看tag列表的命令格式:
git tag [-n[<num>]] -l [--contains <commit>] [--contains <commit>]
[--points-at <object>] [--column[=<options>] | --no-column]
[--create-reflog] [--sort=<key>] [--format=<format>]
[--[no-]merged [<commit>]] [<pattern>…]
4) 验证的命令格式:
git tag -v [--format=<format>] <tagname>…
3. git tag命令示例
- git tag命令
在refs/tags/命名空间中创建一个tag对象,tag不能重名
- git tag -f命令
在refs/tags/命名空间中创建一个tag对象,tag可以替换重名
- git tag -l命令
查看tag的list
- git tag -l 'v-*'命令
查看匹配的tag的list
- git tag -v命令
验证tag
- git tag -d命令
删除tag
- git tag -a|-s|-u <keyid>命令
在refs/tags/命名空间中创建一个"annotated" tag对象,必须同时给出tag message。
即git tag -a|-s|-u <keyid> -m <message>|-F <message_file>
另外,git tag -m <message>|-F <message_file>等价于git tag -a -m <message>|-F <message_file>
- git tag -a命令
在refs/tags/命名空间中创建一个unsigned的tag对象
- git tag -s|-u <keyid>命令
在refs/tags/命名空间中创建一个GnuPG signed的tag对象
其中-s,默认使用邮件地址的keyid,也可以在.git/config文件中为[user]定义signingKey = <gpg-keyid>
其中-u <keyid>,使用指定的keyid