标签

  • Tier: 基础版,专业版,旗舰版
  • Offering: JihuLab.com, 私有化部署

在 Git 中,标签标记了代码库历史中的一个重要点。Git 支持两种类型的标签:

  • 轻量标签 指向特定提交,不包含其他信息,也称为软标签。根据需要创建或删除它们。
  • 注解标签 包含元数据,可以签名以验证,无法更改。

标签的创建或删除可用作自动化的触发器,包括:

当你 创建发布 时,极狐GitLab 还会创建一个标签以标记发布点。许多项目将注解发布标签与稳定分支相结合。考虑自动设置部署或发布标签。

在极狐GitLab UI 中,每个标签显示:

Example of a single tag

  • 标签名称. ()
  • 可选. 如果标签是 保护的,则显示 protected 徽章。
  • 提交 SHA (),链接到提交的内容。
  • 提交的标题和创建日期。
  • 可选. 链接到发布 ()。
  • 可选. 如果已运行流水线,则显示当前流水线状态。
  • 下载链接到与标签关联的源代码和产物。
  • 一个 创建发布 () 链接。
  • 一个删除标签的链接。

查看项目的标签#

要查看项目的所有现有标签:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 代码 > 标签

在提交列表中查看标记的提交#

History
    • 引入于极狐GitLab 15.10。
  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。

  2. 选择 代码 > 提交

  3. 带有标签的提交标记有标签图标 (

    ) 和标签的名称。此示例显示了一个标记为 v1.26.0 的提交:

    A tagged commit in the Commits view

要查看此标签中的提交列表,请选择标签名称。

创建标签#

标签可以通过命令行或极狐GitLab UI 创建。

从命令行#

要从命令行创建轻量或注解标签并推送到上游:

  1. 要创建轻量标签,运行命令 git tag TAG_NAME,将 TAG_NAME 更改为您想要的标签名称。

  2. 要创建注解标签,从命令行运行 git tag 的某个版本:

    shell
    # 在这个简短版本中,注解标签的名称是 "v1.0",消息是 "Version 1.0"。 git tag -a v1.0 -m "Version 1.0" # 使用此版本在文本编辑器中为注解标签 "v1.0" 写一个较长的标签消息。 git tag -a v1.0
  3. 使用 git push origin --tags 推送您的标签到上游。

从 UI#

要从极狐GitLab UI 创建标签:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 代码 > 标签
  3. 选择 新建标签
  4. 提供一个 标签名称
  5. 对于 从...创建,选择一个现有的分支名称、标签或提交 SHA。
  6. 可选. 添加一个 消息 来创建注解标签,或者留空以创建轻量标签。
  7. 选择 创建标签

命名您的标签#

Git 强制执行 标签名称规则 以帮助确保标签名称与其他工具兼容。极狐GitLab 对标签名称添加了额外要求,并为结构良好的标签名称提供了好处。

极狐GitLab 对所有标签强制执行以下额外规则:

  • 标签名称中不允许有空格。
  • 以 40 或 64 个十六进制字符开头的标签名称被禁止,因为它们类似于 Git 提交哈希。
  • 标签名称不能以 -refs/heads/refs/tags/refs/remotes/ 开头。
  • 标签名称是区分大小写的。

防止标签删除#

  • Tier: 专业版,旗舰版
  • Offering: JihuLab.com, 私有化部署

要防止用户使用 git push 删除标签,请创建一个 推送规则

从标签触发流水线#

极狐GitLab CI/CD 提供了一个预定义变量 CI_COMMIT_TAG,用于在流水线配置中识别标签。您可以在作业规则和工作流规则中使用此变量来测试流水线是否由标签触发。

默认情况下,如果您的 CI/CD 作业没有特定规则,它们会包含在任何新创建标签的标签流水线中。

在项目的 CI/CD 流水线配置文件 .gitlab-ci.yml 中,您可以使用 CI_COMMIT_TAG 变量来控制新标签的流水线:

  • 在作业级别使用 rules:if
  • 在流水线级别使用 workflow 关键字。