保护分支
权限基本上是围绕对代码仓库和分支具有读或写权限的想法定义的,为了对某些分支机加进一步的限制,可以对其进行保护。
概览
默认情况下,受保护的分支将执行以下四个简单的操作:
- 它会阻止除具有 maintainer 权限的用户之外的所有用户创建它(如果尚未创建)
- 它可以防止除具有允许的权限的用户以外的其他任何人推送
- 它可以防止任何人强行推送分支
- 它可以防止任何人删除分支
配置保护分支
要保护分支,您需要至少具有 maintainer 权限级别,请注意,默认情况下master
分支是受保护的。
- 导航到项目的**"项目设置"➔"仓库"**
- 滚动查找" **受保护的分支"**部分并展开
- 从" **分支"**下拉菜单中,选择要保护的分支,然后单击" 保护"
- 完成后,受保护的分支将出现在"受保护的分支"列表中
启用允许合并及允许推送设置
使用"允许推送"和"允许合并"设置,您可以控制不同角色可以在受保护分支中执行的操作。例如,您可以将"允许推送"设置为" None ",将"允许合并"设置为" developer + maintainer ",以要求每个人都提交合并请求,以请求更改进入受保护分支。
但是,有些工作流程不需要这样做,只有防止强行推动和移除分支才有用。对于这些工作流程,您可以通过将"允许推送"设置为" developer + maintainer "来允许具有写访问权的每个人推送到受保护的分支。
您可以在创建受保护的分支时设置"允许推送"和"允许合并"选项,也可以在之后通过从"已保护"区域的下拉列表中选择所需的选项来设置。
如果在创建受保护的分支时未选择任何这些选项,则默认情况下会将它们设置为" maintainer "。
通配保护分支
您可以指定一个通配符保护的分支,该分支将保护所有与通配符匹配的分支。 例如:
通配符保护的分支 | 匹配分支 |
---|---|
*-stable |
production-stable , staging-stable
|
production/* |
production/app-server , production/load-balancer
|
*gitlab* |
gitlab , gitlab/staging , master/gitlab/production
|
受保护的分支设置(如" developer 可以推送")适用于所有匹配的分支。
两个不同的通配符可能会匹配同一分支。例如, *-stable
production-stable
和production-*
都将与production-stable
分支匹配,在这种情况下,如果这些受保护的分支有这样一个设定"允许推送",然后production-stable
也将继承这一设置。
如果单击受保护分支的名称,将显示所有匹配分支的列表。
新建保护分支
当受保护的分支或通配符受保护的分支设置为" 不允许任何人 推送"时 ,只要允许 developer(和具有较高权限级别的用户)合并 ,就可以创建新的受保护分支。
可以通过用户界面创建新分支:
- 打开代码>分支
- 单击新建分支
- 填写分支名称,然后选择一个现有的分支,新分支将基于该分支。仅接受现有的受保护分支和已经在受保护分支中的提交。
删除保护分支
有时可能需要删除或清理受保护的分支,具有 maintainer 并具有 maintainer 用户可以通过 Web 界面手动删除受保护的分支:
只能通过 Web 界面而不是 Git 删除受保护的分支,这意味着您不能从命令行或 Git 客户端应用程序中意外删除受保护的分支。