Managing a branch protection rule

You can create a branch protection rule to enforce certain workflows for one or more branches, such as requiring an approving review or passing status checks for all pull requests merged into the protected branch.

People with admin permissions to a repository can manage branch protection rules.

受保护分支适用于具有 GitHub Free 和组织的 GitHub Free 的公共仓库,以及具有 GitHub Pro、GitHub Team、GitHub Enterprise Cloud 和 GitHub Enterprise Server 的公共和私有仓库。 更多信息请参阅“GitHub 的产品”。

About branch protection rules

您可以在仓库中为特定分支、所有分支或者与使用 fnmatch 语法指定的命名模式匹配的任何分支创建分支保护规则。 例如,要保护包含文字 release 的任何分支,您可以为 *release* 创建分支规则。

You can create a rule for all current and future branches in your repository with the wildcard syntax *. Because GitHub uses the File::FNM_PATHNAME flag for the File.fnmatch syntax, the wildcard does not match directory separators (/). For example, qa/* will match all branches beginning with qa/ and containing a single slash. You can include multiple slashes with qa/**/*, and you can extend the qa string with qa**/**/* to make the rule more inclusive. For more information about syntax options for branch rules, see the fnmatch documentation.

If a repository has multiple protected branch rules that affect the same branches, the rules that include a specific branch name have the highest priority. If there is more than one protected branch rule that references the same specific branch name, then the branch rule created first will have higher priority.

Protected branch rules that mention a special character, such as *, ?, or ], are applied in the order they were created, so older rules with these characters have a higher priority.

To create an exception to an existing branch rule, you can create a new branch protection rule that is higher priority, such as a branch rule for a specific branch name.

For more information about each of each of the available branch protection settings, see "About protected branches."

Creating a branch protection rule

When you create a branch rule, the branch you specify doesn't have to exist yet in the repository.

  1. 在 GitHub 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)仓库选项子菜单
  4. 在“Branch protection rules(分支保护规则)”旁边,单击 Add rule(添加规则)添加分支保护规则按钮
  5. 在“Branch name pattern(分支名称模式)”下,输入您要保护的分支名称或模式。 分支规则字段
  6. Optionally, enable required pull request reviews.
    • Under "Protect matching branches", select Require pull request reviews before merging. Pull request review restriction checkbox
    • Click the Required approving reviews drop-down menu, then select the number of approving reviews you'd like to require on the branch. Drop-down menu to select number of required review approvals
    • Optionally, to dismiss a pull request approval review when a code-modifying commit is pushed to the branch, select Dismiss stale pull request approvals when new commits are pushed. Dismiss stale pull request approvals when new commits are pushed checkbox
    • Optionally, to require review from a code owner when the pull request affects code that has a designated owner, select Require review from Code Owners. For more information, see "About code owners." Require review from code owners
    • Optionally, if the repository is part of an organization, select Restrict who can dismiss pull request reviews. Then, search for and select the people or teams who are allowed to dismiss pull request reviews. For more information, see "Dismissing a pull request review." Restrict who can dismiss pull request reviews checkbox
  7. Optionally, enable required status checks.
    • Select Require status checks to pass before merging. Required status checks option
    • Optionally, to ensure that pull requests are tested with the latest code on the protected branch, select Require branches to be up to date before merging. Loose or strict required status checkbox
    • From the list of available status checks, select the checks you want to require. List of available status checks
  8. Optionally, select Require conversation resolution before merging. Require conversation resolution before merging option
  9. Optionally, select Require signed commits. Require signed commits option
  10. Optionally, select Require linear history. Required linear history option
  11. Optionally, select Include administrators. Include administrators checkbox
  12. Optionally, if your repository is owned by an organization using GitHub Team or GitHub Enterprise Cloud, enable branch restrictions.
    • Select Restrict who can push to matching branches. Branch restriction checkbox
    • Search for and select the people, teams, or apps who will have permission to push to the protected branch. Branch restriction search
  13. Optionally, under "Rules applied to everyone including administrators", select Allow force pushes. Allow force pushes option
  14. Optionally, select Allow deletions. Allow branch deletions option
  15. Click Create.

Editing a branch protection rule

  1. 在 GitHub 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)仓库选项子菜单
  4. To the right of the branch protection rule you want to edit, click Edit. Edit button
  5. Make your desired changes to the branch protection rule.
  6. Click Save changes. Save changes button

Deleting a branch protection rule

  1. 在 GitHub 上,导航到仓库的主页面。
  2. 在仓库名称下,单击 Settings(设置)仓库设置按钮
  3. 在左侧菜单中,单击 Branches(分支)仓库选项子菜单
  4. To the right of the branch protection rule you want to delete, click Delete. Delete button

此文档对您有帮助吗?隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。