受保护的标签
受保护的标签:
- 允许控制谁有权创建标签。
- 一旦创建,防止意外更新或删除。
每个规则都允许您匹配:
- 一个单独的标签名称。
- 通配符一次控制多个标签。
此功能由受保护的分支演变而来。
谁可以修改受保护的标签
默认情况下:
- 要创建标签,您必须具有维护者角色。
- 没有人可以更新或删除标签。
配置受保护的标签
先决条件:
- 您必须至少具有该项目的维护者角色。
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 在左侧边栏中,选择 设置 > 仓库。
- 展开 受保护的标签。
- 要保护单个标签,请选择 标签,然后从下拉列表中选择您的标签。
- 保护名称与字符串匹配的所有标签:
- 选择 标签。
- 输入用于标签匹配的字符串。支持通配符 (
*
)。 - 选择 创建通配符。
- 在 允许创建 中,选择可以创建受保护标签的用户或角色。
- 选择 保护。
受保护的标签(或通配符)显示在 受保护的标签 列表中。
受保护的标签通配符
您可以指定一个保护标签通配符,它会保护所有与通配符匹配的标签。例如:
受保护的标签通配符 | 匹配标签 |
---|---|
v* |
v1.0.0 , version-9.1
|
*-deploy |
march-deploy , 1.0-deploy
|
*gitlab* |
gitlab , gitlab/v1
|
* |
v1.0.1rc2 , accidental-tag
|
两个不同的通配符可能匹配同一个标签。 例如,*-stable
和 production-*
都会匹配一个 production-stable
标签。
在这种情况下,如果这些受保护标签中的任何具有类似 允许创建 的设置,那么 production-stable
也会继承此设置。
如果单击受保护标签的名称,系统会显示所有匹配标签的列表:
防止创建与分支同名的标签
同名的标签和分支可以包含不同的提交。如果您的标签和分支使用相同的名称,则运行 git checkout
命令的用户可能会检查标签 qa
,而不是检查分支 qa
。
为了防止这个问题:
- 确定您不想用作标签的分支名称。
-
如配置受保护的标签中所述,创建受保护的标签:
- 在 名称 中,请提供一个名称,例如
stable
。您还可以创建通配符,例如stable-*
来匹配多个名称,例如stable-v1
和stable-v2
。 - 在 允许创建 中,选择 No one。
- 选择 保护。
- 在 名称 中,请提供一个名称,例如
用户仍然可以使用受保护的名称创建分支,但不能创建标签。
删除受保护的标签
您可以使用 API 或用户界面手动删除受保护的标签。
先决条件:
- 您必须在项目中至少拥有维护者角色。
操作步骤:
- 在左侧边栏中,选择 搜索或转到 并找到您的项目。
- 在左侧边栏中,选择 代码 > 标签。
- 在您要删除的标签旁边,选择 删除 ()。
- 在确认对话框中,输入标签名称并选择 是,删除受保护的标签。
只能使用极狐GitLab 从 UI 或 API 删除受保护的标签。 这些保护措施可防止您通过本地 Git 命令或第三方 Git 客户端意外删除标签。