Git 标签(Tag)就是给某个提交打一个“永不移动”的书签,常用于标记发布版本(v1.0.0、v2.3.1 等)。
下面给你最全、最实用的 Git 标签使用指南(2025 年最新规范)。
1. 两种标签类型(务必记住区别)
| 类型 | 命令示例 | 特点 | 适用场景 |
|---|---|---|---|
| 轻量标签 Lightweight | git tag v1.5 | 只是一个名字指向 commit | 临时标记、私下用 |
| 带注解标签 Annotated(强烈推荐) | git tag -a v1.5 -m “正式发布上线” | 包含创建者、日期、消息,可签名 | 正式发布版本(所有人都在用) |
结论:正式发布一律用 -a 带注解标签!
2. 常用标签操作(直接复制粘贴)
| 场景 | 命令 | 说明 |
|---|---|---|
| 给当前最新提交打标签 | git tag -a v1.0.0 -m “正式上线” | 最常用 |
| 给历史某个 commit 打标签 | git tag -a v1.0.0 a1b2c3d | a1b2c3d 是 commit id 前几位 |
| 查看所有标签 | git tag | 按字母排序 |
| 查看标签详细信息 | git show v1.0.0 | 显示标签信息 + 该次提交的 diff |
| 按版本号排序查看标签 | git tag -l “v*” –sort=-version:refname | 最新版本在最上面 |
| 推送单个标签到远程 | git push origin v1.0.0 | 默认不会推标签,必须手动 |
| 推送所有标签到远程 | git push origin –tags | 一键推全部 |
| 删除本地标签 | git tag -d v1.0.0 | |
| 删除远程标签 | git push origin –delete v1.0.0 | 或 git push origin :refs/tags/v1.0.0 |
| 切换到某个标签(检出) | git checkout v1.0.0 | 会进入“分离头指针”状态,小心操作 |
| 基于标签创建分支(推荐) | git switch -c release-1.0 v1.0.0 | 安全,推荐这样修复老版本 bug |
3. 真实公司发布流程(2025 年最标准做法)
# 1. 代码在 main 分支已测试通过,准备发布
git switch main
git pull
# 2. 打正式带注解标签
git tag -a v1.2.0 -m "新增用户中心、修复支付 bug"
# 3. 推代码 + 推标签(两步都要做!)
git push origin main
git push origin v1.2.0 # 或者 git push origin --tags
# 4. 去 GitHub/GitLab 点 “Create Release”
# → 选择刚打的 tag → 填写更新日志 → Publish
4. 推荐的版本号规范(语义化版本 Semantic Versioning)
格式:vMAJOR.MINOR.PATCH(如 v2.4.1)
| 递增哪一位 | 含义 | 示例 |
|---|---|---|
| MAJOR (主版本) | 大改版,不兼容旧 API | v1.9.9 → v2.0.0 |
| MINOR (次版本) | 新增功能,向下兼容 | v2.3.8 → v2.4.0 |
| PATCH (补丁) | 修复 bug,向下兼容 | v2.4.0 → v2.4.1 |
| 预发布版本 | 加 -alpha、-beta、-rc | v2.5.0-beta.1 |
5. 超级实用技巧
# 查看最近的 10 个标签(按版本号排序)
git tag -l --sort=-version:refname | head -10
# 快速查看当前代码距离哪个正式版本差了多少提交
git describe --tags
# 输出示例:v1.2.0-5-gabc123 → 比 v1.2.0 多了 5 个提交
# 在 CI/CD 中自动获取最新版本号
git describe --tags --abbrev=0 # 只返回标签名,如 v1.2.0
6. 推荐的 git alias(加到全局配置一劳永逸)
git config --global alias.tags "tag -l --sort=-version:refname"
git config --global alias.lasttag "describe --tags --abbrev=0"
以后直接敲:
git tags # 按版本号排序看所有标签
git lasttag # 当前最新的正式版本是哪个
一句话总结
- 日常开发别管标签
- 正式发布必须打带注解标签(-a)
- 必须手动推标签(git push origin v1.x.x)
- 发布完去 GitHub/GitLab 点 “Create Release” 写更新日志
做完这四步,你的版本管理就完全专业级了!
需要我给你一份「Git 标签 + 发布流程」彩色速查卡(PDF,带所有命令和 GitHub 截图)吗?随时说一声,我立刻发你!