

亚马逊 CodeCatalyst 不再向新买家开放。现有客户可以继续正常使用该服务。有关更多信息，请参阅 [如何从中迁移 CodeCatalyst](migration.md)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用分支规则管理分支允许的操作
<a name="source-branches-branch-rules"></a>

创建分支时，根据该角色的权限，允许对该分支执行某些操作。您可以通过配置分支规则来更改特定分支允许执行的操作。分支规则基于用户在项目中的角色。您可以选择对某些预定义操作（如将提交推送到分支）进行限制，使得只有项目中具有特定角色的用户才能执行这些操作。通过限制允许哪些角色执行某些操作，有助于您保护项目中的特定分支。例如，如果配置了一个分支规则，只允许具有**项目管理员**角色的用户合并或推送到该分支，那么在项目中具有其他角色的用户将无法更改该分支中的代码。

您应该仔细考虑为分支创建规则的所有影响。例如，如果您选择限制只有具有**项目管理员**角色的用户才能向分支推送，那么具有**贡献者**角色的用户将无法在该分支中创建或编辑工作流，因为工作流 YAML 存储在该分支中，而这些用户无法提交和推送对 YAML 的更改。最佳做法是，在创建分支规则后对其进行测试，以确保它们不会产生任何预料之外的影响。您还可以将分支规则与拉取请求的审批规则结合使用。有关更多信息，请参阅 [管理将拉取请求与审批规则合并的要求](source-pull-requests-approval-rules.md)。

**注意**  
您必须具有项目管理员角色才能管理 CodeCatalyst 项目中源存储库的分支规则。您无法为链接的存储库创建分支规则。  
您只能创建比角色默认权限更严格的分支规则。您创建的分支规则，不能比用户在项目中的角色所允许的权限更宽松。例如，您不能创建分支规则，来允许具有审阅者角色的用户推送到分支。

应用于源存储库默认分支的分支规则，与应用于其他分支的分支规则在行为上有些不同。应用于默认分支的任何规则，都将自动应用于您指定为默认分支的任何分支。以前被设置为默认分支的分支仍将保留应用于它的规则，只是不再具有防止删除的保护功能。这种保护只适用于当前的默认分支。

分支规则有两种状态：**标准**和**自定义**。**标准**表示允许在分支上执行的操作与用户在分支操作中的角色权限相匹配 CodeCatalyst 的操作。要进一步了解哪些角色拥有哪些权限，请参阅[使用用户角色授予访问权限](ipa-roles.md)。**自定义**表示一个或多个分支中的操作具有特定的角色列表来授予执行该操作的权限，与项目中用户角色授予的默认权限不同。

**注意**  
如果创建了分支规则来限制分支的一个或多个操作，则**删除分支**操作会自动设置为只允许具有项目管理员角色的用户删除该分支。

下表列出了操作以及允许在分支上执行这些操作的角色的默认设置。


**分支操作和角色**  

| **分支操作** |  在未应用分支规则时，允许执行此操作的角色  | 
| --- | --- | 
|  合并到分支（这包括将拉取请求合并到分支）  |  项目管理员、贡献者  | 
|  推送到分支  |  项目管理员、贡献者  | 
|  删除分支  |  项目管理员、贡献者  | 
|  删除分支（默认分支）  |  不允许  | 

 您不能删除分支规则，但可以更新这些规则来允许所有角色在分支上执行该操作，这样实际上就是移除了规则。

**注意**  
您必须具有项目管理员角色才能为 CodeCatalyst 项目中的源存储库配置分支规则。这不适用于链接的存储库。链接存储库不支持中的分支规则 CodeCatalyst。<a name="view-edit-branch-rules"></a>

**查看和编辑存储库的分支规则**

1. 导航到存储库所在的项目。

1. 从项目的源存储库列表中选择存储库的名称。或者，在导航窗格中，选择**代码**，然后选择**源存储库**。

   选择要在其中查看分支规则的存储库。

1. 在存储库的概述页面上，选择**分支**。

1. 在**分支规则**列中，查看存储库中每个分支的规则状态。**标准**表示分支操作规则是在源存储库中创建的任何分支的默认规则，并与项目中授予给这些角色的权限相匹配。**自定义**表示一个或多个分支操作所具备的规则，只允许一组不同的角色执行该分支中的一个或多个操作。

   要查看分支规则的具体内容，请选择要查看的分支旁边的**标准**或**自定义**字样。

1. 要创建或更改分支规则，请选择**管理设置**。在源存储库的设置页面上，在**分支规则**中，选择**编辑**。

1. 在**分支**中，从下拉列表中选择要为其配置规则的分支名称。对于每种允许的操作类型，从下拉列表中选择要允许执行该操作的角色，然后选择**保存**。