Skip to main content

Verwalten einer Branchschutzregel

Du kannst eine Regel für den Schutz von Branches erstellen, um bestimmte Workflows für einen oder mehrere Branches zu erzwingen. Dazu gehört z. B. eine erforderliche Genehmigungsüberprüfung oder das Übergeben von Statusprüfungen für alle Pull Requests, die im geschützten Branch zusammengeführt wurden.

Wer kann dieses Feature verwenden?

People with admin permissions or a custom role with the "edit repository rules" permission to a repository can manage branch protection rules.

Geschützte Branches sind in öffentlichen Repositorys mit GitHub Free und GitHub Free für Organisationen sowie in öffentlichen und privaten Repositorys mit GitHub Pro, GitHub Team, GitHub Enterprise Cloud und GitHub Enterprise Server verfügbar. Weitere Informationen findest du unter GitHub-Pläne.

Informationen zu Branchschutzregeln

Du kannst eine Branchschutzregel in einem Repository für einen bestimmten Branch, für alle Branches oder für solche Branches erstellen, die mit einem Namensmuster übereinstimmen, das du mithilfe der fnmatch-Syntax angibst. Um beispielsweise alle Branches zu schützen, die das Wort release enthalten, kannst du eine Branchregel für *release* erstellen.

Du kannst eine Regel für alle aktuellen und zukünftigen Branches in deinem Repository mit der Platzhaltersyntax * erstellen. Da GitHub das Flag File::FNM_PATHNAME für die Syntax File.fnmatch verwendet, entspricht das Platzhalterzeichen * nicht den Verzeichnistrennzeichen (/). qa/* entspricht z. B. allen Branches, die mit qa/ beginnen und einen einzelnen Schrägstrich enthalten, aber nicht qa/foo/bar. Nach qa kann mit qa/**/* eine beliebige Anzahl von Schrägstrichen eingeschlossen werden, um z. B. qa/foo/bar/foobar/hello-world zu entsprechen. Du kannst mit qa**/**/* auch die Zeichenfolge qa erweitern, um die Regel auszudehnen.

Weitere Informationen zu Syntaxoptionen findest du in der Dokumentation zu fnmatch.

Hinweis: Nicht alle Ausdrücke aus der fnmatch-Syntax werden in Verzweigungsschutzregeln unterstützt. Beachten Sie die folgenden Beschränkungen:

  • Sie können den umgekehrten Schrägstrich (\) nicht als Quotierungszeichen verwenden, da GitHub die Verwendung von umgekehrten Schrägstrichen in Verzweigungsschutzregeln nicht unterstützt.
  • Sie können Zeichensätze in eckigen Klammern ([]) angeben, aber derzeit keinen Satz mit dem Operator ^ ergänzen (z. B. [^charset]).
  • GitHub unterstützt zwar File::FNM_PATHNAME in der fnmatch-Syntax, aber nicht File::FNM_EXTGLOB.

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

Branchschutzregeln mit einem Sonderzeichen, wie *, ? oder ] werden in der Reihenfolge ihrer Erstellung angewandt, 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.

Weitere Informationen zu den verfügbaren Branchschutzeinstellungen findest du unter Informationen zu geschützten Branches.

Hinweis: Es kann nur eine einzelne Branchschutzregel gleichzeitig angewendet werden. Das bedeutet, dass es schwierig sein, kann zu wissen, wie welche Regel angewendet wird, wenn mehrere Versionen einer Regel auf denselben Branch abzielen. Weitere Informationen zu einer Alternative zu Branchschutzregeln findest du unter Informationen zu Regelsätzen.

Erstellen einer Branchschutzregel

Um eine Branchregel zu erstellen, darf der von dir angegebene Branch noch nicht im Repository vorhanden sein.

Hinweis: Akteure können nur Umgehungslisten hinzugefügt werden, wenn das Repository zu einer Organisation gehört.

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Wähle unter dem Namen deines Repositorys die Option Einstellungen aus. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicke im Abschnitt „Code und Automatisierung“ der Randleiste auf -Branches.

  4. Klicke neben „Branchschutzregeln“ auf Regel hinzufügen.

  5. Gib unter „Branch name pattern" (Branch-Namensmuster) den Branch-Namen oder das Muster ein, das Du schützen möchtest.

  6. Aktiviere optional erforderliche Pull Requests.

    Hinweis: Wenn du Alte Pull Request-Genehmigungen verwerfen, wenn neue Commits gepusht werden und/oder Genehmigung des letzten überprüfbaren Pushs anfordern auswählst, schlägt das manuelle Erstellen des Mergecommits für einen Pull Request und das direkte Pushen an einen geschützten Branch fehl, es sei denn, der Mergeinhalt stimmt genau mit dem Merge überein, der von GitHub für den Pull Request generiert wurde.

    Darüber hinaus wird die Genehmigung von Überprüfungen mit diesen Einstellungen als veraltet verworfen, wenn die Mergebasis nach der Übermittlung der Überprüfung neue Änderungen einführt. Die Mergebasis ist der Commit, der den letzten gemeinsamen Vorgänger zwischen dem Topic-Branch und dem Basisbranch darstellt. Wenn sich die Mergebasis ändert, kann der Pull Request erst zusammengeführt werden, wenn jemand die Arbeit erneut genehmigt.

    • Wähle unter „Übereinstimmende Branches schützen“ die Option Pull Request vor dem Zusammenführen anfordern aus.

    • Um Genehmigungen zu erfordern, bevor ein Pull Request zusammengeführt werden kann, wählst du optional Genehmigungen erfordern aus.

      Wähle das Dropdownmenü Erforderliche Anzahl von Genehmigungen vor dem Mergen und dann die Anzahl von genehmigenden Reviews aus, die du für den Branch erzwingen möchtest.

    • Um optional genehmigende Pull Request-Reviews zu überspringen, wenn ein Commit mit geändertem Code an den Branch gepullt wird, wähle Alte Pull Request-Genehmigungen verwerfen, wenn neue Commits gepusht werden aus.

    • Wähle optional Review von Codebesitzern erforderlich aus, damit ein Review von einem Codebesitzer erforderlich ist, wenn der Pull Request sich auf Code auswirkt, für den es einen bestimmten Besitzer gibt. Weitere Informationen findest du unter Informationen zu Codeinhabern.

    • Du kannst optional zulassen, dass bestimmte Akteure Code in den Branch pushen, ohne Pull Requests zu erstellen, wenn sie erforderlich sind, indem du Angegebenen Akteuren erlauben, erforderliche Pull Requests zu umgehen auswählst. Suche dann die Akteure, die das Erstellen eine Pull Requests überspringen dürfen, und wähle sie aus.

    • Wenn das Repository zu einer Organisation gehört, kannst du optional Einschränken, wer Pull Request-Reviews verwerfen kann auswählen. Suche dann über das Suchfeld die Akteure, die Pull Request-Reviews verwerfen dürfen, und wähle sie aus. Weitere Informationen findest du unter Einen Pull-Request-Review ablehnen.

    • Wenn du möchtest, dass eine andere Person als der letzte Pusher einen Pull Request vor dem Mergen genehmigt, wähle Genehmigung des letzten überprüfbaren Pushs anfordern aus. Weitere Informationen findest du unter Informationen zu geschützten Branches.

  7. Aktiviere optional erforderliche Statusüberprüfungen. Weitere Informationen findest du unter Informationen zu Statuschecks.

    • Wähle Statusüberprüfungen müssen vor dem Zusammenführen bestanden werden aus.
    • Wenn du optional sicherstellen möchtest, dass Pull Requests mit dem neuesten Code im geschützten Branch getestet werden, wählst du Aktualität von Branches vor dem Mergen erfordern aus.
    • Suche über das Suchfeld nach Statusüberprüfungen, und wähle die gewünschten Überprüfungen aus.
  8. Optional kannst du auch Erfordern der Klärung von Konversationen vor dem Zusammenführen auswählen.

  9. Wähle optional Erfordern signierter Commits aus.

  10. Wähle optional Erfordern eines linearen Verlaufs aus.

  11. Optional kannst du Pull Requests auch mithilfe einer Mergewarteschlange zusammenführen, indem du Erfordern von Mergewarteschlangen auswählst. Weitere Informationen zu Mergewarteschlangen findest du unter Verwalten einer Mergewarteschlange.

  12. Wenn du optional auswählen möchtest, in welchen Umgebungen die Änderungen vor dem Zusammenführen erfolgreich bereitgestellt werden müssen, wählst du Erfordern erfolgreicher Bereitstellungen vor dem Mergen und dann die Umgebungen aus.

  13. Optional kannst du den Branch als schreibgeschützt festlegen.

    • Wähle Branch sperren aus.
    • Wähle optional zum Zulassen der Forksynchronisierung Forksynchronisierung zulassen aus.
  14. Wähle optional Umgehung der oben genannten Einstellungen nicht zulassen aus.

  15. Aktiviere optional in öffentlichen Repositorys, die einer GitHub Free Organisation gehören, und in allen Repositorys, die einer Organisation mit GitHub Team oder GitHub Enterprise Cloud gehören, Brancheinschränkungen.

    • Wähle Einschränken der Berechtigungen zum Pushen an übereinstimmende Branches aus.
    • Wenn du optional auch die Erstellung von übereinstimmenden Branches einschränken möchtest, wählst du Pushes einschränken, die übereinstimmende Branches erstellen aus.
    • Suche über das Suchfeld die Personen, Teams oder Apps, die die Berechtigung zum Pushen in den geschützten Branch erhalten sollen, und wähle sie aus, oder erstelle einen übereinstimmenden Branch.
  16. Wähle unter „Regeln für jedermann, Administratoren inbegriffen“ die Option Erlaube erzwungene Pushes aus.

    Wähle dann aus, wer Pushes in den Branch erzwingen darf.

    • Wähle Jeder aus, um allen Personen, die mindestens über Schreibberechtigungen für das Repository verfügen, das erzwungene Pushen in den Branch zu erlauben (einschließlich jenen mit Administratorberechtigungen).
    • Wähle Angeben, wer Pushes erzwingen darf aus, damit nur bestimmte Akteure Pushes in den Branch erzwingen können. Suche dann nach diesen Akteuren, und wähle sie aus.

    Weitere Informationen zu erzwungenen Pushes findest du unter Informationen zu geschützten Branches.

  17. Wähle optional Löschungen zulassen aus.

  18. Klicke auf Erstellen.

Bearbeiten einer Branchschutzregel

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Wähle unter dem Namen deines Repositorys die Option Einstellungen aus. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicke im Abschnitt „Code und Automatisierung“ der Randleiste auf -Branches.

  4. Klicke rechts neben der Branchschutzregel, die du bearbeiten möchtest, auf Bearbeiten.

  5. Nimm die gewünschten Änderungen an der Branchschutzregel vor.

  6. Klicke auf Änderungen speichern.

Löschen einer Branchschutzregel

  1. Navigiere auf GitHub.com zur Hauptseite des Repositorys.

  2. Wähle unter dem Namen deines Repositorys die Option Einstellungen aus. Wenn die Registerkarte „Einstellungen“ nicht angezeigt wird, wähle im Dropdownmenü die Option Einstellungen aus.

    Screenshot eines Repositoryheaders mit den Registerkarten. Die Registerkarte „Einstellungen“ ist dunkelorange umrandet.

  3. Klicke im Abschnitt „Code und Automatisierung“ der Randleiste auf -Branches.

  4. Klicke rechts neben der Branchschutzregel, die du löschen möchtest, auf Löschen.