首页/开发/Git 与协作速查/git tag 标签基础
Git 基础与命令88 条

git tag 标签基础

给提交打标签:列出、创建、删除与推送;标签默认不随 push 自动上传,需要显式推送目标标签。

Git 与协作速查开发更新于 2026-10-13

git tag 是什么

git tag 给某个提交打上一个固定名字,用来标记发布点与里程碑。标签指向提交本身,不随分支移动,所以是回溯发布的稳定锚点:不管分支后来怎么走,某个版本号永远指向同一次提交。它有两种形式:轻量标签只存名字,附注标签还会带上说明信息与签名。

为什么要显式推送标签

标签默认不会随普通推送一起上传,需要显式指定。这既是保护也是麻烦:好处是本地临时打的标记不会误传到远端,代价是忘记推送会让发布流水线找不到对应标签。流水线常以标签触发发布,因此打标签与推送标签通常是一个连续动作。

基本信息

适用平台Linux / macOS / Windows(Git 2.x)
语法git tag [选项] [<名字>] [<提交>]
轻量标签只记录名字,适合临时标记
附注标签-a 创建,-m 写说明,可配合签名
推送方式默认不推,需要 git push origin <标签> 或 --tags
删除方式本地用 -d,远端用 push --delete

典型使用场景

  • 标记发布:给每个上线版本打一个可回溯的标签
  • 触发流水线:以标签推送作为发布流程的起点
  • 归档里程碑:标记重要阶段,便于以后比对差异
  • 版本比较:用两个标签之间的差异整理变更清单
  • 热修复起点:以线上标签为起点开分支,保证基线精确

常用示例

常用示例
git tag                            # 列出全部标签
git tag v1.4.0                     # 轻量标签,指向当前提交
git tag -a v1.4.0 -m '发布 1.4.0'  # 附注标签,带说明
git tag -l 'v1.*'                  # 按模式筛选
git push origin v1.4.0             # 推送单个标签
git push origin --tags             # 推送全部本地标签
git tag -d v1.4.0                  # 删除本地标签
git push origin --delete v1.4.0    # 删除远端标签

轻量标签与附注标签

对比项轻量标签附注标签
创建方式git tag 加名字需要 -a 并通常配 -m
存储内容只有一个引用独立对象,含说明与作者
是否可以签名否可以配合签名使用
适用场景临时标记正式发布
标签指向提交、不随分支移动,是发布回溯的稳定锚点;流水线也常以标签推送来触发发布流程。
只删本地标签,远端仍然存在,团队成员依旧可以拉到。删除标签要把本地与远端两边都做掉。

易错点

  • 只删本地标签时远端仍在,团队成员仍能拉到,删除需要两端都做
  • git push --tags 会把本地全部标签一并推出去,正式发布时尽量指定具体标签
  • 同名标签重复创建会被拒绝,改名或重打前先确认已有标签列表
  • 以为打了标签就会自动上传,忘记推送导致流水线找不到对应版本

数据来源与参考

  • Git 官方文档:git-tag
  • Pro Git 2nd Edition · 2.6 打标签
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌