一、标签概述
1、标签引入
标签(Tag)通常用于为某个commit取一个容易识别的名称,例如 v1.0.0 这样具有特殊意义的名字,方便定位正式发布版本、测试版本或其他重要节点。
标签的作用是什么呢?以前为了区分不同的commit,我们只能通过Commit ID来识别,既不方便也不直观,而有了Tag之后,识别起来就容易多了。
💡 标签属于仓库,不隶属于某个分支;同一个提交也可以拥有多个标签。
2、标签类型
Git有两种标签类型:
- 轻量标签:直接引用目标对象,通常是提交。
- 附注标签:独立的标签对象,包含创建者、时间、说明等。
前面介绍Git对象的时候提到了四种对象,此处的附注标签就是一种Git对象,它有自己的ID,不同于Commit ID。
二、创建标签
1、创建轻量标签
创建标签使用如下指令:
gittag v1.02、创建附注标签
轻量标签就是取一个标签名,没有说明信息。创建附注标签可以添加描述信息,使用如下指令:
gittag-av1.0-m"描述信息"其中 -a 为创建附注标签,-m 为填写标签说明。
3、为历史提交创建标签
当创建标签没有指定目标时,默认标记当前HEAD对应的提交。我们想要给历史提交创建标签需要指定对应的Commit ID。
gittag-av0.9 a1b2c3d-m"Release v0.9"三、查看标签
1、查看标签列表
使用如下列表查看当前仓库的标签:
gittag⚠️ 标签列表的展示是按名字排序而不是创建时间先后。
2、查看标签信息
为了查看对应标签的详细信息使用如下指令:
gitshow<tagname>创建好标签后,到 .git 目录里会发现refs目录下多了tags目录,里面就存了该仓库的标签信息。
四、删除标签
1、删除本地标签
如果本地打标签打错了,我们直接删除就好:
gittag-d<tagname>2、删除远端标签
由于标签都在本地,我们要将本地标签推送至远端,需要用到如下指令:
gitpush origin<tagname># 推送指定taggitpush origin--tags# 推送所有tags此时要删除远端标签,还是要用到push:
gitpush origin :refs/tags/v1.0gitpush origin :v1.0gitpush origin-dv1.0当冒号左侧的来源为空时,Git将其解释为:删除右侧指定的远程引用。
⚠️ 用 -d 就不加删除用的冒号;用冒号,就不加 -d。