⚠️ Alpha内测版本警告:此为早期内部构建版本,尚不完整且可能存在错误,欢迎大家提Issue反馈问题或建议
Skip to content

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 --oneline

Tag 命名规范

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"

避坑指南

新手最容易犯的错

  1. 忘记推送标签到远程仓库
  2. 使用轻量标签进行正式发布(缺少元信息)
  3. 在错误的提交上打标签
  4. 修改已推送的标签(破坏历史记录)