博客
Git 规范和最佳实践
标签(Tag)

Tag

Git 标签(Tag)是版本控制中的重要概念,用于标记代码库的特定状态,通常是重要的版本发布点。本文将介绍 Git 标签的基本概念、命名规范和常用操作。

命名规范

标准的版本号格式遵循语义化版本控制 (opens in a new tab)规范,语义化版本号格式为 MAJOR.MINOR.PATCH,具体定义如下:

  • MAJOR:主版本号,当做了不兼容的 API 修改时,需要增加主版本号。
  • MINOR:次版本号,当做了向下兼容的功能性新增时,需要增加次版本号。
  • PATCH:修订版本号,当做了向下兼容的问题修正时,需要增加修订号。

而标签名通常是在版本号前加上 v,即 vMAJOR.MINOR.PATCH。例如:v1.2.3

如果是基于 hotfix 分支创建的 tag,则 tag 命名格式为 vx.x.x-hotfixN。例如:v1.2.3-hotfix1

预发布版本:alpha、beta 和 rc

许多软件在正式发布前会发布预览版或测试版,通常按照以下顺序:

  • alpha 版:内部测试版。例如:v1.0.0-alpha.1 α 是希腊字母的第一个,表示最早的版本,主要供内部开发者和测试人员使用。

  • beta 版:公开测试版。例如:v1.0.0-beta.2 β 是希腊字母的第二个,比 alpha 版发布得晚,主要供外部测试者和早期采用者使用。

  • rc 版:候选发布版本(Release Candidate)。例如:v1.0.0-rc.1 接近最终发行版的预览版,功能已完整,主要用于最后的测试和修复。

这些版本通常添加在主版本号后面,用连字符分隔。

标签操作

创建标签

# 创建一个基于当前 commit 的轻量标签
git tag <tag-name>
 
# 创建一个带注释的标签
# -a 用于创建一个带注释的标签(annotated tag)
git tag -a <tag-name> -m "Tag message"
 
# 创建一个基于指定 commit 的标签
git tag <tag-name> <commit-hash>

查看标签

# 查看所有标签
git tag
 
# 查看特定标签的详细信息
git show <tag-name>

删除标签

# 删除本地标签
git tag -d <tag-name>
 
# 删除远程标签
git push origin --delete <tag-name>

推送标签

# 推送标签到远程仓库
git push origin <tag-name>
 
# 推送所有标签到远程仓库
git push origin --tags

标签的重要性

在 Git 中使用标签非常重要,因为它们:

  1. 标记重要的版本节点,如正式发布版本。
  2. 便于回溯特定版本的代码。
  3. 有助于版本管理和发布流程的规范化。
  4. 方便团队成员和用户了解项目的发展历程。
  5. 与分支不同,标签是固定的,不会随着新的提交而移动,因此更适合标记特定的版本点。

使用规范的标签命名和管理,可以大大提高项目的可维护性和协作效率。