Git 中文手册

git tag 打标签与推送:标记发布版本的完整教程

2026-09-06 约 3 分钟阅读

想给某个提交打上 v1.0.0 的版本号?本文讲清 git tag 的创建、轻量与附注标签区别、查看、删除,以及如何把标签推送到远程仓库。

场景:功能开发完成,想给这个版本打上 v1.0.0 的标签,方便后续回退或发布。git tag 就是干这个的。

标签是什么

标签是固定在某个提交上的命名指针,标记一个「不会再变」的节点(通常是发布版本)。它和分支的关键区别:分支随提交移动,标签不动。

一、打标签

给当前所在提交打标签:

# 轻量标签(只记一个名字)
git tag v1.0.0

# 附注标签(推荐,含作者/时间/备注)
git tag -a v1.0.0 -m "第一个稳定版本"

给历史某个指定提交打标签:

git tag v1.0.0 提交哈希

推荐用附注标签 -a,正式发布信息更完整。

二、查看标签

git tag                     # 列出所有标签
git tag -l "v1.*"           # 模糊搜索,如只看 v1 开头
git show v1.0.0             # 查看某个标签指向的提交和备注

三、推送标签到远程

普通 git push 不会带标签,需单独推送:

git push origin v1.0.0      # 推送单个标签
git push --tags             # 推送所有本地标签

四、检出某个标签的代码

git checkout v1.0.0         # 切到该版本(游离状态,只读查看)
git checkout -b release-v1 v1.0.0  # 基于标签建分支再改

五、删除标签

# 删除本地
git tag -d v1.0.0

# 删除远程
git push origin --delete v1.0.0

版本号规范建议(语义化)

主版本.次版本.修订号:

v1.0.0   首个正式版
v1.2.0   新增功能(次版本+1)
v1.2.3   修复 bug(修订号+1)
v2.0.0   破坏性变更(主版本+1)

常见问题

  • push 后别人看不到标签:忘了 git push --tags,补推即可。
  • 标签打错了提交:删了重打(见上文删除),再推新的。
  • 标签与分支同名:会混乱,尽量避免同名。

一句话速记

git tag -a v1.0.0 -m 备注 打标 → git push --tags 推送。

?

常见问题 FAQ

轻量标签和附注标签有什么区别?
轻量标签只是一个指向提交的引用,不存额外信息;附注标签(git tag -a)会记录打标签者、时间、备注等完整信息,更正式,推荐用于发布版本。
为什么 git push 后别人看不到我的标签?
因为普通 push 不会带上标签。需要单独用 git push origin 标签名 或 git push --tags 推送标签到远程。
标签打在错误提交上,怎么改到另一个?
删除旧标签(git tag -d 标签名 加远程 git push origin --delete 标签名),再在正确的提交上重新打标签并推送。
标签和分支有什么本质区别?
分支会随新提交不断移动;标签指向一个固定的提交不再变化,适合标记不可变的发布版本。标签一旦打了通常不修改。