# 将分支保护转换为规则集

使用规则集可以更清晰地查看和控制存储库保护，同时保留其现有行为。

## 关于将分支保护转换为规则集

规则集提供更清晰的可见性和控制保护应用于存储库的方式。 与分支保护规则不同，多个规则集可以同时应用于同一分支，具有读取访问权限的人员可以查看活动规则集。 这有助于开发人员了解影响它们的规则，并允许审核员在没有管理员访问权限的情况下查看存储库保护。

若要将现有保护移动到此模型，请在引导流中一次转换一个分支保护规则。
GitHub 生成一个或多个保留原始规则行为的规则集。 可以预览规则集，选择每个规则集的强制实施方式， 并在删除原始分支保护规则之前验证结果。

有关规则集的详细信息，请参阅 [关于规则集](/zh/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/about-rulesets)。

## 将分支保护规则转换为规则集

1. 在 GitHub 上，导航到存储库的主页面。
2. 在仓库名称下，单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-label="gear" role="img"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg>“Settings”\*\*\*\*。 如果看不到“设置”选项卡，请选择“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="kebab horizontal icon" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>”下拉菜单，然后单击“设置”。

   ![存储库标头的屏幕截图，其中显示了选项卡。 “设置”选项卡以深橙色边框突出显示。](/assets/images/help/repository/repo-actions-settings.png)
3. 在 边栏的“代码、规划和自动化”“ 部分中，单击“ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-git-branch" aria-label="git-branch" role="img"><path d="M9.5 3.25a2.25 2.25 0 1 1 3 2.122V6A2.5 2.5 0 0 1 10 8.5H6a1 1 0 0 0-1 1v1.128a2.251 2.251 0 1 1-1.5 0V5.372a2.25 2.25 0 1 1 1.5 0v1.836A2.493 2.493 0 0 1 6 7h4a1 1 0 0 0 1-1v-.628A2.25 2.25 0 0 1 9.5 3.25Zm-6 0a.75.75 0 1 0 1.5 0 .75.75 0 0 0-1.5 0Zm8.25-.75a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5ZM4.25 12a.75.75 0 1 0 0 1.5.75.75 0 0 0 0-1.5Z"></path></svg> 分支**”。
4. 在“分支保护规则”下，找到要转换的规则，然后单击“ **转换为规则集**”。
5. 为此转换中创建的每个规则集设置规则集名称。
6. 查看“新建行为”部分，了解创建规则集或规则集时将发生哪些更改。
7. 在“强制状态”下，选择如何强制执行新规则集。 有关详细信息，请参阅 [“选择强制状态](#choosing-an-enforcement-status)”。
8. 如果选择 **“活动”**，可以选择删除原始分支保护规则作为转换的一部分，方法是在 **迁移完成后选择“删除分支保护规则**”。
9. 单击“ **创建规则集**”。 如果转换生成多个规则集，按钮将包含规则集的数量，例如 **“创建 2 个规则集**”。

如果保留原始分支保护规则，它会继续保护匹配的分支。
**活动**规则集与活动规则集一起强制执行，因此更改必须满足这两者的需求。
**评估**规则集记录其行为方式，而无需强制执行其规则。

> \[!NOTE]
> 转换涵盖所有分支保护类型，但“合并前需要对话解析”设置除外。 在分支保护中，此设置本身存在。 在规则集中，会话解析是拉取请求规则的一部分，仅在启用该规则时适用。 因此，此设置不会在转换期间将一个映射到一个。 请参阅“[规则集的可用规则](/zh/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-rulesets/available-rules-for-rulesets)”。

### 选择强制状态

转换分支保护规则时，请选择新规则集的强制状态。

* **活动**：创建规则集后立即强制执行。
* **评估**：规则集在不强制实施规则的情况下运行，因此你可以在规则生效之前查看其行为方式。

虽然默认情况下选择了 **“活动”** ，但请考虑哪种状态符合你的情况：

* 如果之前已创建或迁移类似的规则，并且对结果有信心，则可以使用 **Active**。
* 如果这是你的第一次迁移，请考虑从 **评估** 模式开始。 可以确认新规则集的行为按预期方式运行，然后在完成测试后删除原始分支保护规则。

### 删除原始分支保护规则

转换规则后，返回到 **“分支** 设置”页。 如果在转换过程中未选择删除分支保护规则，并且新规则集完全覆盖它，则列出的规则将显示消息“此规则完全由规则集覆盖，可以安全删除”，并且“ **删除** ”按钮将代替 **“转换为规则集** ”按钮。

在删除原始规则之前，我们建议确认新规则集的行为与预期相同，**尤其是在评估模式下**创建规则集时。 准备就绪后，单击“ **删除** ”以删除分支保护规则。

## 延伸阅读

* [关于受保护分支](/zh/enterprise-cloud@latest/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/about-protected-branches)