跳到主要内容

4. 标签管理

- · - ·

什么是标签

和其他 VCS 一样,Git 也支持给仓库中某个提交打标签,以示重要。在工作中比较有代表性的用途是用来标记发布节点。在本节中,你将会学习如何列出已有的标签、 如何创建和删除新的标签、以及不同类型的标签分别是什么。

查看标签

查看标签非常简单,只需要运行 git tag 就可以了。

# 查看本地标签
git tag

# 查看远程标签
git ls-remote --tags

如果你本地的项目标签比较多,还可以使用 --list-l 参数来搜索指定的,比如下面的命令,可以查看所有以 v1.0 开头的标签。

-l--list 作用完全一样, -l--list 的缩写

git tag -l "v1.0*"
git tag --list "v1.0*"

查看远程标签时没有内置的参数用来过滤,不过我们可以使用 grep 来进行过滤输出的结果

# 只列表远程包含req的标签
git ls-remote --tags | grep req

创建标签

Git 支持两种标签: 轻量标签(lightweight)和附注标签(annotated)。

轻量标签

轻量标签很像一个不会改变的分支——它只是某个特定提交的引用。如果使用 git show 查看轻量标签,只会输入创建标签时的提交信息。

创建轻量标签非常简单,只需要在 git tag 后面跟标签名就可以。

git tag 标签名

附注标签

附注标签是存储在 Git 数据库中的一个完整对象,它们是可以被校验的,其中包含打标签者的名字、电子邮件地址、日期时间, 此外还有一个标签信息,并且可以使用 GNU Privacy Guard (GPG) 签名并验证。 通常会建议创建附注标签,这样你可以拥有以上所有信息。但是如果你只是想用一个临时的标签,或者因为某些原因不想要保存这些信息,那么也可以用轻量标签。

# 创建一个未签名的附注标签
git tag -a 标签名 -m 提交信息

# 使用默认键创建签名附注标签
git tag -s 标签名 -m 提交信息

# 使用指定的键创建签名的附注标签
git tag -u 键 标签名 -m 提交信息

推送标签到远程

默认情况下, git push 命令并不会传送标签到远程仓库服务器上。 在创建完标签后你必须显式地推送标签到共享服务器上。这个过程就像共享远程分支一样,可以使用下面的命令把标签推送到远程:

默认情况下远程名一般是 origin

# 推送指定标签到指定远程服务器
git push 远程名 标签名。

# 推送全部标签到指定远程服务器
git push 远程名 --tags

删除标签

使用下面的命令可以删除本地标签

git tag -d 标签名

使用上面的命令只会删除本地标签,如果还需要删除本地标签可以使用下面的命令。

# 本地删除以后同步到远程服务器
git push 远程名 :refs/tags/标签名

# 直接删除远程标签
git push 远程名 -d 标签名

检出标签

检出标签和检出分支完全一样,也是使用 git checkout 命令,具体用法请参考Git 进阶教程-3-分支管理

该内容为何方原创,转载请注明本页地址
https://iamhefang.cn/tutorials/Git系列教程/git-tutorial-2-git-tag-manage