protected-branch.md 4.3 KB
Newer Older
Lab机器人's avatar
Lab机器人 已提交
1
# 保护分支[](#protected-branch "Permalink")
Lab机器人's avatar
readme  
Lab机器人 已提交
2

Lab机器人's avatar
Lab机器人 已提交
3
[权限](/docs/user/permissions.md)基本上是围绕对代码仓库和分支具有读或写权限的想法定义的,为了对某些分支机加进一步的限制,可以对其进行保护。
Lab机器人's avatar
readme  
Lab机器人 已提交
4

Lab机器人's avatar
Lab机器人 已提交
5
## 概览[](#overview "Permalink")
Lab机器人's avatar
readme  
Lab机器人 已提交
6

Lab机器人's avatar
Lab机器人 已提交
7
默认情况下,受保护的分支将执行以下四个简单的操作:
Lab机器人's avatar
readme  
Lab机器人 已提交
8

Lab机器人's avatar
Lab机器人 已提交
9 10 11 12
*   它会阻止除具有 maintainer 权限的用户之外的所有用户创建它(如果尚未创建)
*   它可以防止除具有**允许的**权限的用户以外的其他任何人推送
*   它可以防止**任何人**强行推送分支
*   它可以防止**任何人**删除分支
Lab机器人's avatar
readme  
Lab机器人 已提交
13

Lab机器人's avatar
Lab机器人 已提交
14
## 配置保护分支[](#configuring-protected-branches "Permalink")
Lab机器人's avatar
readme  
Lab机器人 已提交
15

Lab机器人's avatar
Lab机器人 已提交
16
要保护分支,您需要至少具有 maintainer 权限级别,请注意,默认情况下`master`分支是受保护的。
Lab机器人's avatar
readme  
Lab机器人 已提交
17

Lab机器人's avatar
Lab机器人 已提交
18 19 20 21
1.  导航到项目的**"项目设置"➔"仓库"**
2.  滚动查找" **受保护的分支"**部分并展开
3.  从" **分支"**下拉菜单中,选择要保护的分支,然后单击" **保护"** 
4.  完成后,受保护的分支将出现在"受保护的分支"列表中
Lab机器人's avatar
readme  
Lab机器人 已提交
22

Lab机器人's avatar
Lab机器人 已提交
23
## 启用允许合并及允许推送设置[](#using-the-allowed-to-merge-and-allowed-to-push-settings "Permalink")
Lab机器人's avatar
readme  
Lab机器人 已提交
24

Lab机器人's avatar
Lab机器人 已提交
25
使用"允许推送"和"允许合并"设置,您可以控制不同角色可以在受保护分支中执行的操作。例如,您可以将"允许推送"设置为" None ",将"允许合并"设置为" developer + maintainer ",以要求*每个人都*提交合并请求,以请求更改进入受保护分支。
Lab机器人's avatar
readme  
Lab机器人 已提交
26

Lab机器人's avatar
Lab机器人 已提交
27
但是,有些工作流程不需要这样做,只有防止强行推动和移除分支才有用。对于这些工作流程,您可以通过将"允许推送"设置为" developer + maintainer "来允许具有写访问权的每个人推送到受保护的分支。
Lab机器人's avatar
readme  
Lab机器人 已提交
28

Lab机器人's avatar
Lab机器人 已提交
29
您可以在创建受保护的分支时设置"允许推送"和"允许合并"选项,也可以在之后通过从"已保护"区域的下拉列表中选择所需的选项来设置。
Lab机器人's avatar
readme  
Lab机器人 已提交
30

Lab机器人's avatar
Lab机器人 已提交
31
如果在创建受保护的分支时未选择任何这些选项,则默认情况下会将它们设置为" maintainer "。
Lab机器人's avatar
readme  
Lab机器人 已提交
32

Lab机器人's avatar
Lab机器人 已提交
33
## 通配保护分支[](#wildcard-protected-branches "Permalink")
Lab机器人's avatar
readme  
Lab机器人 已提交
34

Lab机器人's avatar
Lab机器人 已提交
35
您可以指定一个通配符保护的分支,该分支将保护所有与通配符匹配的分支。 例如:
Lab机器人's avatar
readme  
Lab机器人 已提交
36 37 38 39 40 41 42

| 通配符保护的分支 | 匹配分支 |
| --- | --- |
| `*-stable` | `production-stable`, `staging-stable` |
| `production/*` | `production/app-server`, `production/load-balancer` |
| `*gitlab*` | `gitlab`, `gitlab/staging`, `master/gitlab/production` |

Lab机器人's avatar
Lab机器人 已提交
43
受保护的分支设置(如" developer 可以推送")适用于所有匹配的分支。
Lab机器人's avatar
readme  
Lab机器人 已提交
44

Lab机器人's avatar
Lab机器人 已提交
45
两个不同的通配符可能会匹配同一分支。例如, `*-stable` `production-stable``production-*`都将与`production-stable`分支匹配,在这种情况下,如果*这些*受保护的分支有这样一个设定"允许推送",然后`production-stable`也将继承这一设置。
Lab机器人's avatar
readme  
Lab机器人 已提交
46

Lab机器人's avatar
Lab机器人 已提交
47
如果单击受保护分支的名称,将显示所有匹配分支的列表。
Lab机器人's avatar
readme  
Lab机器人 已提交
48

Lab机器人's avatar
Lab机器人 已提交
49 50 51
## 新建保护分支[](#creating-a-protected-branch "Permalink")
 
当受保护的分支或通配符受保护的分支设置为" [**不允许任何人** **推送"时**](#using-the-allowed-to-merge-and-allowed-to-push-settings) ,只要允许 developer(和具有较高[权限级别的](/docs/user/permissions.md)用户)[**合并**](#using-the-allowed-to-merge-and-allowed-to-push-settings) ,就可以创建新的受保护分支。
Lab机器人's avatar
readme  
Lab机器人 已提交
52

Lab机器人's avatar
Lab机器人 已提交
53
可以通过用户界面创建新分支:
Lab机器人's avatar
readme  
Lab机器人 已提交
54

Lab机器人's avatar
Lab机器人 已提交
55 56 57
1.  打开**代码>分支**
2.  单击**新建分支**
3.  填写分支名称,然后选择一个现有的分支,新分支将基于该分支。仅接受现有的受保护分支和已经在受保护分支中的提交。
Lab机器人's avatar
readme  
Lab机器人 已提交
58

Lab机器人's avatar
Lab机器人 已提交
59
## 删除保护分支[](#deleting-a-protected-branch "Permalink")
Lab机器人's avatar
readme  
Lab机器人 已提交
60

Lab机器人's avatar
Lab机器人 已提交
61
有时可能需要删除或清理受保护的分支,具有[ maintainer ](/docs/user/permissions.md)并具有[ maintainer ](/docs/user/permissions.md)用户可以通过 Web 界面手动删除受保护的分支:
Lab机器人's avatar
readme  
Lab机器人 已提交
62

Lab机器人's avatar
Lab机器人 已提交
63
1.  打开**代码>分支**
Lab机器人's avatar
readme  
Lab机器人 已提交
64 65 66
2.  单击您要删除的分支旁边的删除图标
3.  为了防止意外删除,需要额外的确认

Lab机器人's avatar
Lab机器人 已提交
67
    [![Delete protected branches](/docs/img/protected_branches_delete.png)](/docs/img/protected_branches_delete.png)
Lab机器人's avatar
readme  
Lab机器人 已提交
68

Lab机器人's avatar
Lab机器人 已提交
69
只能通过 Web 界面而不是 Git 删除受保护的分支,这意味着您不能从命令行或 Git 客户端应用程序中意外删除受保护的分支。