Informationen zu Mergewarteschlangen
Eine Mergewarteschlange hilft dabei, die Geschwindigkeit zu erhöhen, indem Pull Request-Merges in einem ausgelasteten Branch automatisiert werden und sichergestellt wird, dass der Branch nie durch inkompatible Änderungen unterbrochen wird.
Die Mergewarteschlange bietet die gleichen Vorteile wie der Branchschutz Aktualität von Branches vor dem Mergen erfordern. Es ist jedoch nicht erforderlich, dass Pull Request-Ersteller*innen ihren Pull Request-Branch aktualisieren und auf den Abschluss der Statusüberprüfungen warten, bevor der Merge versucht wird.
Die Verwendung einer Mergewarteschlange ist besonders nützlich für Branches mit einer relativ hohen Anzahl von Pull Requests, die täglich von vielen verschiedenen Benutzer*innen zusammengeführt werden.
Sobald ein Pull Request alle erforderlichen Prüfungen zum Schutz der Branches bestanden hat, kann eine Benutzerin mit Schreibzugriff auf das Repository diesen Pull Request der Warteschlange hinzufügen. Die Mergewarteschlange stellt sicher, dass die Pull Request-Änderungen alle erforderlichen Statusüberprüfungen bestehen, wenn sie auf die neueste Version des Zielbranch und alle Pull Requests angewendet werden, die sich bereits in der Warteschlange befinden.
Eine Mergewarteschlange kann GitHub Actions oder einen eigenen CI-Anbieter verwenden, um erforderliche Überprüfungen für Pull Requests in einer Mergewarteschlange auszuführen. Weitere Informationen findest du unter GitHub Actions-Dokumentation. Weitere Informationen zu Mergewarteschlangen findest du unter Verwalten einer Mergewarteschlange.
Hinzufügen eines Pull Requests zu einer Mergewarteschlange
Note
Du kannst die GitHub CLI verwenden, um einer Mergewarteschlange einen Pull Request hinzuzufügen. Klicke auf die Registerkarte „GitHub CLI“ oben in diesem Artikel, um weitere Informationen zu erhalten.
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Klicke unter dem Namen deines Repositorys auf -Pull Requests.
-
Klicke in der Liste „Pull Requests“ auf den Pull Request, den du einer Mergewarteschlange hinzufügen möchtest.
-
Klicke auf Zusammenführen, wenn bereit, um den Pull Request der Mergewarteschlange hinzuzufügen. Als Administrator hast du alternativ folgende Möglichkeit:
- Führen Sie die Pull Request direkt zusammen, indem Sie die Option Zusammenführen aktivieren, ohne auf die Erfüllung der Anforderungen zu warten (unter Umgehung des Branchschutzes), sofern die Branchschutz-Einstellungen dies zulassen, und folgen Sie dem Standardablauf.
Note
Du kannst auf Merge when ready klicken, wenn du bereit bist, deine vorgeschlagenen Änderungen zu mergen. GitHub fügt den Pull Request automatisch der Mergewarteschlange hinzu, sobald die erforderlichen Bedingungen für Genehmigungs- und Statusüberprüfung erfüllt sind.
-
Klicke auf „Zusammenführen, wenn bereit“ bestätigen, um zu bestätigen, dass du den Pull Request der Mergewarteschlange hinzufügen möchtest.
Mit GitHub CLI kannst du den Befehl gh pr merge
verwenden, um einer Mergewarteschlange einen Pull Request hinzuzufügen. Wenn du auf einen Branch abzielst, für den eine Mergewarteschlange erforderlich ist, fügt dieser Befehl den Pull Request automatisch der Warteschlange hinzu, sofern die erforderlichen Überprüfungen bestanden wurden. Wenn die erforderlichen Überprüfungen nicht bestanden wurden, aktiviert dieser Befehl die automatische Zusammenführung für den Pull Request. Weitere Informationen findest du unter gh pr merge
im Handbuch GitHub CLI.
Entfernen eines Pull Requests aus einer Mergewarteschlange
Um einen Pull Request aus einer Mergewarteschlange zu entfernen, navigierst du zur Seite des Repositorys in GitHub.com. Du kannst die GitHub CLI nicht verwenden, um einen Pull Request aus einer Mergewarteschlange zu entfernen.
-
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
-
Klicke unter dem Namen deines Repositorys auf -Pull Requests.
-
Klicke in der Liste „Pull Requests“ auf den Pull Request, den du aus einer Mergewarteschlange entfernen möchtest.
-
Klicke auf Aus Warteschlange entfernen, um den Pull Request aus der Warteschlange zu entfernen.
Alternativ kannst du zur Seite der Mergewarteschlange für den Basis-Branch navigieren, neben dem Pull Request, den du entfernen möchtest, auf ... klicken und anschließend Aus Warteschlange entfernen auswählen. Wie du zur Seite der Mergewarteschlange für den Basis-Branch gelangst, erfährst du im nächsten Abschnitt.
Anzeigen von Mergewarteschlangen
Die Mergewarteschlange für einen Basis-Branch kann in GitHub an verschiedenen Orten angezeigt werden: Du kannst die GitHub CLI nicht verwenden, um eine Mergewarteschlange anzuzeigen.
Die Mergewarteschlange für einen Basis-Branch kann in GitHub an verschiedenen Orten angezeigt werden:
-
Auf der Seite Branches für das Repository. Diese Route empfiehlt sich, wenn du nicht über einen Pull Request in einer Warteschlange verfügst oder keine Informationen zu einem Pull Request hast, der sich bereits in einer Warteschlange befindet, und ermitteln möchtest, was die Warteschlange enthält. Weitere Informationen finden Sie unter Branches in Deinem Repository anzeigen.
-
Scrolle auf der Seite „Pull Requests“ in der Zeitskala ganz nach unten, und klicke auf den Link Mergewarteschlange, wenn die Mergewarteschlange zum Zusammenführen benötigt wird.
-
Die Mergewarteschlangenansicht zeigt die Pull Requests, die sich derzeit in der Warteschlange befinden. Deine Pull Requests sind dabei gut sichtbar markiert.
Informationen dazu, warum dein Pull Request aus der Mergewarteschlange entfernt wurde
Wenn ein Pull Request mit der neuesten Version des Zielbranch und den vorhergehenden Änderungen in der Warteschlange gruppiert wurde und die erforderlichen Statusprüfungen fehlgeschlagen sind oder Konflikte mit dem Basisbranch bestehen, wird der Pull Request aus der Warteschlange entfernt. In der Zeitachse des Pull Requests wird angezeigt, warum der Pull Request aus der Warteschlange entfernt wurde.
Es gibt eine Reihe von Gründen, warum ein Pull Request aus einer Mergewarteschlange entfernt wird:
- Der konfigurierte CI-Dienst meldet Testfehler für eine Mergegruppe.
- Beim Warten auf ein erfolgreiches CI-Ergebnis ist basierend auf der konfigurierten Timeouteinstellung ein Timeout aufgetreten.
- Eine Benutzerin fordert eine Entfernung über die API oder die Schnittstelle der Mergewarteschlange an.
- Fehler beim Branchschutz, der nicht automatisch behoben werden konnte