11.1.3 Git Tag:版本标记与发布点
一句话破题
Git Tag 是给特定提交打上永久标签的方式,用于标记发布版本,方便后续查找和回滚。
核心价值
使用 Git Tag 能让你:
- 精确定位每个发布版本的代码状态
- 快速回滚到任意历史版本
- 触发 CI/CD 自动发布流程
两种 Tag 类型
| 类型 | 命令 | 适用场景 |
|---|---|---|
| 轻量标签 | git tag v1.0.0 | 临时标记 |
| 附注标签 | git tag -a v1.0.0 -m "..." | 正式发布 |
快速上手
创建标签
bash
# 创建附注标签(推荐用于发布)
git tag -a v1.2.0 -m "Release version 1.2.0"
# 创建轻量标签
git tag v1.2.0
# 给历史提交打标签
git tag -a v1.1.0 abc1234 -m "Release version 1.1.0"查看标签
bash
# 列出所有标签
git tag
# 按模式过滤
git tag -l "v1.*"
# 查看标签详情
git show v1.2.0推送标签到远程
bash
# 推送单个标签
git push origin v1.2.0
# 推送所有标签
git push origin --tags
# 推送所有附注标签
git push origin --follow-tags删除标签
bash
# 删除本地标签
git tag -d v1.2.0
# 删除远程标签
git push origin --delete v1.2.0基于 Tag 的操作
检出特定版本
bash
# 检出到特定标签(分离 HEAD 状态)
git checkout v1.2.0
# 基于标签创建新分支
git checkout -b hotfix/v1.2.1 v1.2.0查看版本间差异
bash
# 比较两个版本
git diff v1.1.0 v1.2.0
# 查看版本间的提交
git log v1.1.0..v1.2.0 --onelineTag 命名规范
v1.2.3 # 标准版本
v1.2.3-alpha.1 # Alpha 预发布
v1.2.3-beta.1 # Beta 预发布
v1.2.3-rc.1 # Release Candidate配合 CI/CD 使用
GitHub Actions 可以监听 Tag 推送来触发发布:
yaml
# .github/workflows/release.yml
name: Release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Get version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
- name: Build and deploy
run: |
echo "Deploying version $VERSION"避坑指南
新手最容易犯的错
- 忘记推送标签到远程仓库
- 使用轻量标签进行正式发布(缺少元信息)
- 在错误的提交上打标签
- 修改已推送的标签(破坏历史记录)
