Hinweis
Dieses Feature befindet sich in der öffentlichen Vorschau und kann geändert werden.
In diesem Artikel werden häufig auftretende Probleme behandelt, die beim Arbeiten mit gestapelten Pullanforderungen auftreten können, und wie Sie diese beheben können.
Eine Neubasis meldet einen Konflikt
Wenn eine kaskadierende Neubasis einen Konflikt auftritt, gh stack rebase stoppt und listet die konfliktierten Dateien auf.
So lösen Sie den Konflikt aus, und fahren Sie fort:
-
Öffnen Sie jede konfliktierte Datei, und lösen Sie die Konfliktmarkierungen (
<<<<<<<,=======,>>>>>>>). -
Stellen Sie die aufgelösten Dateien fest.
git add . -
Setzen Sie die Basis fort. Die verbleibenden Verzweigungen werden automatisch neu gebaset.
gh stack rebase --continue
Wenn der Konflikt zu komplex ist oder Sie neu beginnen möchten, brechen Sie die Basis ab, um alle Verzweigungen in ihren Vorbasiszustand wiederherzustellen.
gh stack rebase --abort
Eine Synchronisierung wurde aufgrund eines Konflikts beendet.
Wenn während der Ausführung gh stack syncein Konflikt erkannt wird, werden alle Verzweigungen in ihrem ursprünglichen Zustand wiederhergestellt, sodass nichts teilweise aktualisiert wird. Lösen Sie den Konflikt interaktiv, indem Sie eine Neubasis direkt ausführen und dann die aktualisierten Verzweigungen pushen.
gh stack rebase
gh stack push
Eine Änderungssitzung wird nicht gestartet
gh stack modify erfordert einen sauberen Anfangszustand. Wenn sie nicht gestartet wird, bestätigen Sie Folgendes:
- Sie haben einen aktiven Stapel ausgecheckt.
- Ihre Arbeitsstruktur ist sauber.
- Es wird keine Neubasis ausgeführt.
- Zum Zusammenführen wird keine Pullanforderung in die Warteschlange gestellt.
- Der Commitverlauf ist linear. Wenn dies nicht der Grund ist, führen Sie zuerst die Ausführung aus
gh stack rebase.
Eine Änderungssitzung wurde unterbrochen.
Wenn gh stack modify z. B. durch einen Konflikt unterbrochen wird, den Sie nicht beheben möchten oder ein Terminalabsturz auftritt, können Sie den Stapel in den Zustand wiederherstellen, in dem er vor dem Start war. Für die Wiederherstellung wird eine Momentaufnahme vor dem Ändern lokal zwischengespeichert.
gh stack modify --abort
Wenn beim Anwenden von Änderungen ein Konflikt aufgetreten ist und Sie stattdessen den Vorgang beibehalten möchten, lösen Sie den Konflikt auf, stellen Sie die Dateien mit git add, und führen Sie dann aus gh stack modify --continue.
Eine Pullanforderung kann nicht zusammengeführt werden.
Eine Pullanforderung in einem Stapel kann nur zusammenführen, wenn sie, und jede darunter liegende Pullanforderung alle Zusammenführungsanforderungen erfüllt, und der Stapel verfügt über einen vollständig linearen Verlauf. Wenn der Seriendruck blockiert ist, überprüfen Sie Folgendes:
- Die Pullanforderung und alle darunter liegenden Pullanforderungen verfügen über erforderliche Überprüfungen und Übergeben von Prüfungen.
- Der Stapel weist einen linearen Verlauf auf. Wenn Änderungen an eine untere Verzweigung verschoben wurden oder der Trunk vorangezogen wurde, ist der Verlauf möglicherweise nicht mehr linear.
Wenn Sie einen linearen Verlauf wiederherstellen möchten, führen Sie gh stack rebase den Befehl aus, und klicken Sie dann gh stack pushim Seriendruckfeld auf den Stapel neu . Anweisungen findest du unter Verwalten von gestapelten Pullanforderungen.
Zusammenführen beendeter Teildurchlauf durch den Stapel
Die Überprüfungen vor dem Zusammenführen werden vor einem Seriendruck ausgeführt, aber eine Zusammenführung kann trotzdem fehlschlagen. Beispielsweise aufgrund eines unerwarteten Konflikts oder eines zeitweiligen Fehlers. Wenn ein Fehler teilweise auftritt, stoppt das Zusammenführen an dieser Pullanforderung.
- Pullanforderungen darunter, die erfolgreich zusammengeführt wurden, bleiben auf dem Basiszweig.
- Die fehlgeschlagene Pullanforderung und die Pullanforderungen darüber bleiben geöffnet.
Beheben Sie das Problem bei der fehlgeschlagenen Pullanforderung, und wiederholen Sie dann den Seriendruck, um den Rest des Stapels zu landen.
Eine Pullanforderung wurde aus der Seriendruckwarteschlange entfernt.
Stapel werden in der Seriendruckwarteschlange zusammengehalten. Wenn eine Pullanforderung aus der Warteschlange entfernt oder ausgeworfen wird, werden alle Pullanforderungen darüber im Stapel ebenfalls ausgeworfen und entfernt. Fügen Sie den Stapel der Warteschlange erneut hinzu, nachdem das zugrunde liegende Problem behoben wurde.
Ein großer Stapel kann auch auf aufeinander folgende Zusammenführungsgruppen aufgeteilt werden: Die Zusammenführungswarteschlange ermöglicht es einer Zusammenführungsgruppe, ihre konfigurierte maximale Größe um bis zu 50 Prozent zu überschreiten, um einen Stapel zusammenzuhalten, und alle Pullanforderungen, die nicht in nachfolgende Gruppen passen, bis der vollständige Stapel gelandet ist.
Sie haben eine Pullanforderung in der Mitte des Stapels geschlossen.
Das Schließen einer Pullanforderung in der Mitte eines Stapels blockiert alle Pullanforderungen darüber, dass sie zusammengeführt werden können. Die Stapelbeziehung wird beibehalten. Um eine andere Pullanforderung zu öffnen oder die Struktur des Stapels zu ändern, müssen Sie zuerst den Stapel auflösen und dann erneut erstellen.
Sie können den Stapel von der GitHub Website aufheben oder den Stapel neu strukturieren mit gh stack modify. Beim Entstapeln werden nur die geöffneten, entwurfs- und geschlossenen Pullanforderungen entfernt; Zusammengeführte und in die Warteschlange eingereihte Pullanforderungen verbleiben im Stapel. Siehe Verwalten von gestapelten Pullanforderungen und Verwalten von gestapelten Pullanforderungen.
Commits werden nach einer Neubasis nicht signiert
Eine von der Pullanforderung ausgelöste Basis wird auf GitHub's Servern ausgeführt, und diese Commits sind nicht signiert. Wenn Für Ihr Repository signierte Commits erforderlich sind, sollten Sie stattdessen eine GitHub CLI Basis verwenden.
- Die Ausführung
gh stack rebaseverwendet Ihre lokalen Git-Vorgänge, sodass die generierten Commits Ihrer lokalen Git Commit-Signaturkonfiguration folgen. - Nach dem Neubasieren verschieben Sie die aktualisierten Verzweigungen mit
gh stack push.
Sie können keinen Stapel über Fächer hinweg erstellen.
Gestapelte Pullanforderungen erfordern, dass sich alle Verzweigungen im selben Repository befinden. Kreuzverzweigungsstapel werden nicht unterstützt.