Skip to main content

git tag(标签)的用法指南

1. Git Tag 核心概念

Git 中的 tag(标签)是对**某一个提交节点(commit)**的静态标记,核心作用是标记版本节点(如 v1.0、v2.0),区别于分支(branch)的动态迭代,标签一旦创建(普通标签)固定绑定某次提交,不会随代码更新变动。

标签主要分为两类:

  1. 轻量标签(Lightweight Tag):仅保存 commit 哈希值,无额外说明、无作者信息,仅用于临时标记,极简轻量。

  2. 附注标签(Annotated Tag):完整标签对象,包含版本说明、作者、时间、校验信息,支持签名,正式版本发布必须使用此类标签

版本标签通用规范:通常以 v主版本.次版本.修订号 命名,例如 v1.0.0、v2.1.3。

2. 查看标签(基础操作)

2.1. 查看所有本地标签

git tag

作用:列出当前仓库所有本地标签,无分页,标签按字母顺序排序。

2.2. 模糊筛选标签

git tag -l "v1.*"

作用:模糊匹配指定规则的标签,示例可筛选出所有 v1 系列版本(v1.0、v1.1、v1.2 等)。支持通配符 *,精准过滤所需版本。

2.3. 查看标签详细信息

git show v1.0.0

作用:查看标签对应的提交详情、代码变动、标签备注、作者、时间。附注标签会展示完整信息,轻量标签仅展示对应 commit 信息。

3. 创建标签(核心常用)

3.1. 创建轻量标签

git tag v1.0.0

默认给**最新一次提交(HEAD)**打轻量标签,无任何备注信息,仅绑定当前 commit。

3.2. 创建附注标签(推荐正式环境使用)

git tag -a v1.0.0 -m "正式版本v1.0.0 初始发布"

参数说明:

  • -a:全称 annotated,指定创建附注标签

  • -m:指定标签备注信息,说明版本更新内容、发布目的

优势:可追溯版本说明、作者信息,适合生产环境版本归档。

3.3. 给历史提交打标签

很多场景需要对过往某次提交标记版本,无需重置代码,直接通过 commit 哈希值创建标签。

# 格式:git tag -a 标签名 提交哈希 -m "备注"
git tag -a v0.9.0 5f2d368 -m "历史测试版本v0.9.0"

使用 git log 可查看所有历史提交的哈希值,复制对应哈希即可精准打标。

4. 推送标签到远程仓库

默认情况下,git push 不会推送标签,本地标签创建后需手动推送到远程,否则仅本地可见。

4.1. 推送单个标签

git push origin v1.0.0

4.2. 推送所有本地标签

git push origin --tags

作用:一次性推送所有本地未同步的标签到远程,适合批量发布版本。

注意:该命令仅推送标签,不推送代码分支变动。

5. 删除标签(本地+远程

标签命名错误、版本废弃时,需分别删除本地和远程标签,两步操作缺一不可。

5.1. 删除本地标签

git tag -d v1.0.0

-d:delete 缩写,删除本地指定标签

5.2. 删除远程标签

# 标准写法
git push origin :refs/tags/v1.0.0

# 简洁写法(Git 1.7.0+ 支持)
git push origin -d tag v1.0.0

注意:必须先删本地、再删远程,避免远程标签重新拉回本地。

6. 拉取远程标签

多人协作时,需要同步其他开发者推送的远程标签。

6.1. 拉取所有远程标签

git fetch origin --tags

作用:仅同步远程标签到本地,不修改本地代码、不合并分支,安全无副作用。

6.2. 拉取代码同时同步标签

git pull --tags

7. 切换到标签版本

需要回滚、查看历史版本代码时,可直接切换到指定标签对应的代码快照。

git checkout v1.0.0

切换后会进入游离 HEAD 状态,此时仅可查看代码,修改代码不会影响任何分支。若需基于该版本迭代,需新建分支:

git checkout -b hotfix-v1.0.0

8. 标签重命名实操

标签命名错误无法直接修改,需「新建正确标签 → 删除旧标签」完成重命名:

  1. 基于旧标签对应的 commit,创建新标签

  2. 删除本地旧标签

  3. 推送新标签、删除远程旧标签

# 1. 基于旧标签v1.0创建新标签v1.0.0
git tag -a v1.0.0 v1.0 -m "修正版本命名"

# 2. 删除本地旧标签
git tag -d v1.0

# 3. 推送新标签到远程
git push origin v1.0.0

# 4. 删除远程旧标签
git push origin -d tag v1.0

9. 核心使用规范与避坑点

  1. 正式版本只用附注标签:轻量标签无版本备注,无法追溯发布信息,禁止用于生产版本。

  2. 标签不可重复使用:同一仓库不允许重复标签名,版本迭代需递增版本号。

  3. 标签只读不修改:标签是静态快照,创建后不建议修改,版本更新直接新建标签。

  4. 推送标签必同步远程:本地标签不推送,团队其他成员无法查看版本标记。

  5. 禁止删除已发布正式标签:已上线、归档的版本标签严禁删除,避免版本追溯断裂。

10. 常用命令速查表

命令作用
git tag查看所有本地标签
git tag -l "v1.*"筛选指定规则标签
git tag -a v1.0 -m "备注"创建附注标签(推荐)
git tag v1.0创建轻量标签
git show v1.0查看标签详细信息
git push origin v1.0推送单个标签到远程
git push origin --tags推送所有本地标签
git tag -d v1.0删除本地标签
git push origin -d tag v1.0删除远程标签
git fetch origin --tags同步远程标签到本地
git checkout v1.0切换到指定标签版本