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.

Protected branches are available in public repositories with GitHub Free and GitHub Free for organizations, and in public and private repositories with GitHub Pro, GitHub Team, GitHub Enterprise Cloud, and GitHub Enterprise Server. For more information, see "GitHub's products."

About branch protection rules

You can create a branch protection rule in a repository for a specific branch, all branches, or any branch that matches a name pattern you specify with fnmatch syntax. For example, to protect any branches containing the word release, you can create a branch rule for *release*.

You can create a rule for all current and future branches in your repository with the wildcard syntax *. Weil GitHub das File::FNM_PATHNAME-Flag für die File.fnmatch-Syntax verwendet, wird der Platzhalter das Verzeichnistrennzeichen (/) nicht abgleichen. Zum Beispiel wird qa/* alle Branches mit qa/ abgleichen und einen einzigen Schrägstrich enthalten. You can include multiple slashes with qa/**/*, and you can extend the qa string with qa**/**/* to make the rule more inclusive. Weitere Informationen zu den Syntax-Optionen für Branch-Regeln findest Du in der fnmatch-Dokumentation.

Wenn es für ein Repository mehrere Regeln für geschützte Branches gibt, die dieselben Branches betreffen, haben die Regeln, die einen spezifischen Branch-Namen enthalten, die höchste Priorität. Wenn es mehr als eine Regel für geschützte Branches gibt, die auf den gleichen spezifischen Branch-Namen verweist, hat die zuerst erstellte Branch-Regel eine höhere Priorität.

Regeln für geschützte Branches mit einem Sonderzeichen, wie *, ? oder ], werden in der Reihenfolge ihrer Erstellung angewendet, sodass ältere Regeln mit diesen Zeichen eine höhere Priorität haben.

Um eine Ausnahme für eine vorhandene Branch-Regel zu erstellen, erstellst Du eine neue Branch-Schutzregel mit höherer Priorität, z. B. eine Branch-Regel für einen bestimmten Branch-Namen.

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. Navigiere in GitHub zur Hauptseite des Repository.
  2. Klicke unter Deinem Repository-Namen auf Settings (Einstellungen). Schaltfläche „Repository settings" (Repository-Einstellungen)
  3. Klicke im linken Menü auf Branches. Untermenü „Repository options" (Repository-Optionen)
  4. Klicke neben „Branch protection rules" (Branch-Schutzregeln) auf Add rule (Regel hinzufügen.) Schaltfläche „Add branch protection rule" (Füge Branch-Schutzregel hinzu)
  5. Gib unter „Branch name pattern" (Branch-Namensmuster) den Branch-Namen oder das Muster ein, das Du schützen möchtest. Feld „Branch rule" (Branch-Regel)
  6. Optionally, enable required pull request reviews.
    • Under "Protect matching branches", select Require pull request reviews before merging. Kontrollkästchen für Einschränkungen bei Pull-Request-Reviews
    • Click the Required approving reviews drop-down menu, then select the number of approving reviews you'd like to require on the branch. Dropdownmenü zur Auswahl der Anzahl an erforderlichen genehmigenden Reviews
    • 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. Kontrollkästchen „Dismiss stale pull request approvals when new commits are pushed“ (Alte Pull-Request-Genehmigungen verwerfen, wenn neue Commits übertragen werden)
    • 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. Weitere Informationen findest Du unter „Über Codeinhaber." Review von Codeinhabern erforderlich
    • 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. Weitere Informationen findest Du unter „Einen Pull-Request-Review ablehnen.“ Kontrollkästchen „Restrict who can dismiss pull request reviews“ (Einschränken, wer Pull-Request-Reviews verwerfen kann)
  7. Optionally, enable required status checks.
    • Aktivieren Sie Require status checks to pass before merging (Statuschecks müssen vor dem Mergen bestanden werden). Option für erforderliche Statuschecks
    • 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. Kontrollkästchen für lockere oder strenge erforderliche Statuschecks
    • Wähle aus der Liste der verfügbaren Statuschecks diejenigen Prüfungen, die Du verlangen willst. Liste der verfügbaren Statuschecks
  8. Optionally, select Require conversation resolution before merging. Require conversation resolution before merging option
  9. Optionally, select Require signed commits. Option „Require signed commits“ (Verlange signierte Commits)
  10. Optionally, select Require linear history. Option „Required linear history" (Erforderter linearer Verlauf)
  11. Optional wähle Include administrators (Administratoren einbeziehen) aus. Kontrollkästchen „Include administrators“ (Administratoren einbeziehen)
  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. Kontrollkästchen „Branch restriction" (Branch-Einschränkung)
    • Search for and select the people, teams, or apps who will have permission to push to the protected branch. Suche für die Branch-Einschränkung
  13. Optionally, under "Rules applied to everyone including administrators", select Allow force pushes. Option „Allow force pushes" (Erlaube erzwungene Pushes)
  14. Optionally, select Allow deletions. Option „Allow branch deletions" (Erlaube Branch-Löschungen)
  15. Klicke auf Create (Erstellen).

Editing a branch protection rule

  1. Navigiere in GitHub zur Hauptseite des Repository.
  2. Klicke unter Deinem Repository-Namen auf Settings (Einstellungen). Schaltfläche „Repository settings" (Repository-Einstellungen)
  3. Klicke im linken Menü auf Branches. Untermenü „Repository options" (Repository-Optionen)
  4. To the right of the branch protection rule you want to edit, click Edit. Schaltfläche „Edit" (Bearbeiten)
  5. Make your desired changes to the branch protection rule.
  6. Klicke auf Save changes (Änderungen speichern). Schaltfläche „Edit message“ (Meldung bearbeiten)

Deleting a branch protection rule

  1. Navigiere in GitHub zur Hauptseite des Repository.
  2. Klicke unter Deinem Repository-Namen auf Settings (Einstellungen). Schaltfläche „Repository settings" (Repository-Einstellungen)
  3. Klicke im linken Menü auf Branches. Untermenü „Repository options" (Repository-Optionen)
  4. To the right of the branch protection rule you want to delete, click Delete. Schaltfläche „Delete" (Löschen)

Did this doc help you?Privacy policy

Help us make these docs great!

All GitHub docs are open source. See something that's wrong or unclear? Submit a pull request.

Make a contribution

Oder, learn how to contribute.