标签
在 Git 中,标签标记了仓库历史中的一个重要点。 Git 支持两种类型的标签:
- 轻量标签 指向特定的提交,不包含其他信息。 也称为软标签。根据需要创建或删除它们。
- 附注标签 包含元数据,可以签名以进行验证, 并且不能更改。
标签的创建或删除可以用作自动化的触发器,包括:
- 使用 webhook 来自动化操作 如 Slack 通知。
- 向 仓库镜像 发出更新信号。
- 使用
if: $CI_COMMIT_TAG
运行 CI/CD 管道。
当你 创建发布 时, 极狐GitLab 也会创建一个标签来标记发布点。 许多项目将附注发布标签与稳定分支结合使用。考虑自动设置部署或发布标签。
在极狐GitLab UI 中,每个标签显示:
- 标签名称。()
- 可选。如果标签是 受保护的,则显示 protected 徽章。
- 提交 SHA (),链接到提交的内容。
- 提交的标题和创建日期。
- 可选。链接到发布 ()。
- 可选。如果运行了管道,则显示当前管道状态。
- 源代码和与标签关联的工件的下载链接。
- 一个 创建发布 () 链接。
- 删除标签的链接。
查看项目的标签
要查看项目的所有现有标签:
- 在左侧边栏,选择 搜索或转到 并找到你的项目。
- 选择 代码 > 标签。
在提交列表中查看标记的提交
要查看此标签中的提交列表,请选择标签名称。
创建标签
标签可以从命令行或极狐GitLab UI 创建。
从命令行
要从命令行创建轻量或附注标签,并推送到上游:
- 要创建轻量标签,运行命令
git tag TAG_NAME
,将TAG_NAME
更改为你想要的标签名称。 -
要创建附注标签,从命令行运行以下版本之一的
git tag
:# 在这个简短版本中,附注标签的名称是 "v1.0", # 消息是 "Version 1.0"。 git tag -a v1.0 -m "Version 1.0" # 使用此版本在文本编辑器中为附注标签 "v1.0" 编写更长的标签消息。 git tag -a v1.0
- 使用
git push origin --tags
推送你的标签到上游。
从 UI
要从极狐GitLab UI 创建标签:
- 在左侧边栏,选择 搜索或转到 并找到你的项目。
- 选择 代码 > 标签。
- 选择 新建标签。
- 提供一个 标签名称。
- 对于 从…创建,选择一个现有的分支名称、标签或提交 SHA。
- 可选。添加一个 消息 以创建附注标签,或留空以 创建轻量标签。
- 选择 创建标签。
命名你的标签
Git 强制执行 标签名称规则 以帮助确保标签名称与其他工具保持兼容。GitLab 对标签名称施加了额外的要求,并为结构良好的标签名称提供了好处。
极狐GitLab 对所有标签强制执行以下额外规则:
- 标签名称中不允许有空格。
- 以 40 或 64 个十六进制字符开头的标签名称被禁止,因为它们类似于 Git 提交哈希。
- 标签名称不能以
-
、refs/heads/
、refs/tags/
或refs/remotes/
开头。 - 标签名称区分大小写。
防止标签删除
要防止用户使用 git push
删除标签,请创建一个 推送规则。
从标签触发管道
极狐GitLab CI/CD 提供了一个预定义变量 CI_COMMIT_TAG
,
用于在你的管道配置中识别标签。
你可以在作业规则和工作流规则中使用此变量来测试管道是否由标签触发。
默认情况下,如果你的 CI/CD 作业没有特定规则, 它们会包含在任何新创建标签的标签管道中。
在项目的 CI/CD 管道配置文件 .gitlab-ci.yml
中,
你可以使用 CI_COMMIT_TAG
变量来控制新标签的管道: