>> >> >> Reference << << << <<<<<<Ref>>>>>>
Tag
Modified: 2025-12-31 | Author:ljf12825

标签(Tag)是一个指向特定提交(commit)的引用。标签通常用来标记版本发布点,它们类似于一个“里程碑”,标记着项目的一个重要时刻(如发布版本)。与分支(branch)不同,标签是静态的,一旦创建就不能被修改

为什么使用Tag

  1. 标记版本:标签帮助标识发布的版本点。通常在发布新版本时,给代码库打上一个标签,便于以后追踪版本
  2. 管理发布:通过标签,可以清楚地知道某个版本的代码内容是什么叫,方便日后回溯或与其他版本进行对比
  3. 便于下载特定版本:使用Git标签可以方便开发者或用户下载某个特定版本的源代码

Tag 类型

Git中有两种主要的标签类型:

  1. 轻量标签(Lightweight Tag)
    • 轻量标签只是某个提交的引用,不包含任何额外的元数据(如时间、创建者等)。它只是一个指向提交的简单指针
    • 创建方法
      git tag<tag_name>
      
      例如
      git tag v1.0.0
      
  2. 附注标签(Annotated Tag)
    • 附注标签比轻量标签更为复杂。它不仅指向某个提交,还包括了标签的创建者、日期以及一段注释信息。附注标签是Git中推荐使用的标签类型,尤其在版本发布时,便于记录更多信息
    • 创建方法:
      git tag -a <tag_name> -m "tag message"
      
      例如:
      git tag -a v1.0.0 -m "First release of the project"
      

如何查看标签

  1. 列出所有标签:
    git tag
    
  2. 查看某个标签的详细信息:
    git show <tag_name>
    
    例如:
    git show v1.0.0
    
    这将显示与该标签相关的提交信息以及其他元数据(如果是附注标签)

给特定提交打标签

你可以给任何提交打标签,而不仅仅是最新提交,通过提交的哈希值来为某个特定的提交打标签

git tag <tag_name> <commit_hash>

例如:

git tag v1.0.0 abc1234

这将给abc1234提交打上v1.0.0标签

删除标签

如果你错误地创建了标签,或者需要删除某个标签,可以使用以下命令:

  1. 删除本地标签
    git tag -d <tag_name>
    
    例如:
    git tag -d v1.0.0
    
  2. 删除远程标签:
    git push --delete origin <tag_name>
    

推送标签到远程仓库

默认情况下,标签不会自动推送到远程仓库,你需要手动推送标签:

  1. 推送单个标签
    git push origin <tag_name>
    
    例如
    git push origin v1.0.0
    
  2. 推送所有标签 如果你创建了多个标签,并希望将它们一次性推送到远程仓库,可以使用:
    git push --tags
    

标签与版本管理的结合

在使用Git进行版本管理时,标签非常有用。通常开发者会根据SemVer来打标签,表示每一个新发布的版本

标签与Git Flow

在使用Git Flow等工作流时,标签常常在“发布”阶段创建,用于标记生产环境的稳定版本。例如: