# Fehlerbehebung bei aufeinander aufbauenden Pull Requests

Beheben Sie häufige Probleme mit gestapelten Pull Requests, darunter Rebase-Konflikte, blockierte Merges, unterbrochene Vorgänge und Probleme mit der Merge-Warteschlange.

> \[!NOTE] 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 bei einer kaskadierenden Neubasierung ein Konflikt auftritt, hält `gh stack rebase` an und listet die Dateien mit Konflikten auf.

So lösen Sie den Konflikt aus, und fahren Sie fort:

1. Öffnen Sie jede konfliktierte Datei, und lösen Sie die Konfliktmarkierungen (`<<<<<<<`, `=======`, `>>>>>>>`).

2. Stagen Sie die gelösten Dateien.

   ```shell
   git add .
   ```

3. Setzen Sie das Rebase fort. Die verbleibenden Branches werden automatisch neu basiert.

   ```shell
   gh stack rebase --continue
   ```

Wenn der Konflikt zu komplex ist oder Sie von vorn beginnen möchten, brechen Sie den Rebase ab, um alle Branches in ihren Zustand vor dem Rebase zurückzuversetzen.

```shell
gh stack rebase --abort
```

## Eine Synchronisierung wurde aufgrund eines Konflikts beendet.

Wenn während der Ausführung von `gh stack sync` ein Konflikt erkannt wird, werden alle Branches in ihren ursprünglichen Zustand zurückversetzt, sodass nichts in einem teilweise aktualisierten Zustand zurückbleibt. Lösen Sie den Konflikt interaktiv, indem Sie eine Neubasis direkt ausführen und dann die aktualisierten Verzweigungen pushen.

```shell
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 derzeit einen aktiven Stack ausgecheckt.
* Ihr Arbeitsverzeichnis ist sauber.
* Es wird keine Neubasis ausgeführt.
* Zum Zusammenführen wird keine Pullanforderung in die Warteschlange gestellt.
* Die Commit-Historie ist linear. Wenn nicht, führen Sie zuerst `gh stack rebase` aus.

## 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.

```shell
gh stack modify --abort
```

Wenn beim Anwenden von Änderungen ein Konflikt aufgetreten ist und Sie stattdessen fortfahren möchten, lösen Sie den Konflikt auf, stagen Sie die Dateien mit `git add` und führen Sie dann `gh stack modify --continue` aus.

## 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 die Zusammenführung blockiert ist, überprüfen Sie Folgendes:

* Der Pull Request und alle Pull Requests darunter haben die erforderlichen Reviews und erfolgreiche 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.

Um einen linearen Verlauf wiederherzustellen, führen Sie `gh stack rebase` aus und dann `gh stack push`, oder klicken Sie im Merge-Feld auf **Stapel rebasen**. Anweisungen findest du unter [Verwalten von gestapelten Pullanforderungen](/de/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests).

## Zusammenführung wurde mitten im Stapel gestoppt

Prüfungen vor dem Merge werden vor jedem Merge ausgeführt, aber ein Merge kann dennoch fehlschlagen. Beispielsweise aufgrund eines unerwarteten Konflikts oder eines zeitweiligen Fehlers. Tritt während des Vorgangs ein Fehler auf, wird das Zusammenführen bei diesem Pull Request beendet.

* Pull Requests darunter, die erfolgreich zusammengeführt wurden, bleiben im Basis-Branch erhalten.
* Der fehlgeschlagene Pull Request und die Pull Requests oberhalb davon bleiben geöffnet.

Beheben Sie das Problem beim fehlgeschlagenen Pull Request, und versuchen Sie dann die Zusammenführung erneut, um den Rest des Stacks einzubringen.

## Ein Pull Request wurde aus der Merge-Warteschlange entfernt.

Die Stapel werden in der Zusammenführungswarteschlange 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 Stack erneut zur Warteschlange hinzu, sobald das zugrunde liegende Problem behoben ist.

Ein großer Stack kann sich auch über mehrere aufeinanderfolgende Merge-Gruppen erstrecken: Die Merge-Warteschlange erlaubt es einer Merge-Gruppe, ihre konfigurierte maximale Größe um bis zu 50 Prozent zu überschreiten, um den Stack zusammenzuhalten, und Pull Requests, die nicht mehr hineinpassen, werden in den nachfolgenden Gruppen weitergeführt, bis der gesamte Stack zusammengeführt wurde.

## Sie haben einen Pull-Request mitten im Stack geschlossen.

Das Schließen eines Pull Requests mitten in einem Stapel verhindert, dass alle darüberliegenden Pull Requests 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 über die GitHub Website auflösen oder ihn mit `gh stack modify` umstrukturieren. 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](/de/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#unstacking-from-the-github-website) und [Verwalten von gestapelten Pullanforderungen](/de/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests#restructuring-a-stack).

## Sie können keinen Stack über Forks hinweg erstellen.

Gestapelte Pullanforderungen erfordern, dass sich alle Verzweigungen im selben Repository befinden. Kreuzverzweigungsstapel werden nicht unterstützt.