> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Gestapelte PRs

> Wie Devin große Änderungen in geordnete, überprüfbare Stapel von Pull Requests aufteilt

Wenn eine Aufgabe zu umfangreich ist, um sie als einzelne PR bequem zu prüfen, kann Devin sie in einen **Stack** aufteilen: eine geordnete Reihe von Pull Requests, die gemeinsam einen Arbeitsschritt bilden und von unten nach oben zusammengeführt werden. Jede PR im Stack ist eine normale, fokussierte PR, die auf der darunterliegenden aufbaut — Reviewer prüfen jeweils eine kleine, in sich geschlossene Änderung statt eines einzigen monolithischen Diffs.

Die Stacks von Devin basieren auf den nativen gestapelten Pull Requests von GitHub. Ein Stack ist daher ein eigenständiges GitHub-Objekt — keine Konvention, die allein durch Branchnamen zusammengehalten wird.

<Note>
  Gestapelte PRs werden **nur für GitHub.com-Repositorys** unterstützt. GitHub
  Enterprise Server, GitLab und andere Anbieter verfügen über keine API für gestapelte PRs.
</Note>

<div id="how-a-stack-works">
  ## So funktioniert ein Stack
</div>

Ein Stack ist eine Patch-Reihe:

* PRs sind von unten nach oben angeordnet. Der unterste PR hat Ihren Trunk-Branch (z. B. `main`) als Ziel; der Basis-Branch jedes weiteren PRs ist der Head-Branch des darunterliegenden PRs.
* Da jeder PR mit der darunterliegenden Schicht verglichen wird, zeigt er nur seine eigene Änderung – Änderungen aus darüber- oder darunterliegenden Schichten werden nicht einbezogen.
* Der Stack wird von unten nach oben integriert. Beim Zusammenführen eines PRs im Stack werden auch alle darunterliegenden offenen PRs atomar in einem einzigen Vorgang zusammengeführt. Wenn untere PRs zusammengeführt werden, richtet GitHub die verbleibenden PRs automatisch auf den Trunk-Branch neu aus.

<div id="when-devin-creates-a-stack">
  ## Wann Devin einen Stack erstellt
</div>

Devin erstellt Stacks gezielt, nicht zufällig. Es erstellt einen Stack nur, wenn es eine Arbeitseinheit bewusst in eine geordnete Reihe von PRs aufgeteilt hat, die zusammengeführt werden sollen — zum Beispiel eine Schemaänderung, anschließend die darauf zugreifende Serviceschicht und darüber die UI. PRs, die lediglich auf dem Branch einer anderen PR basieren, werden nicht als Stack gruppiert.

Wenn Devin einen Stack plant:

1. **Kündigt es den Stack** vor dem Erstellen von PRs namentlich an, damit Sie die Reihe in Ihrer Sitzung entstehen sehen können.
2. **Erstellt es jede PR** als normale, fokussierte PR — mit eigener Beschreibung und eigener CI — wobei jede auf den Head-Branch der darunterliegenden PR abzielt.
3. **Gruppiert es die PRs zu einem Stack** auf GitHub, sobald sie erstellt wurden.

Jede Schicht erfüllt denselben Standard wie jede eigenständige PR, die Devin erstellt: ein minimaler, fokussierter Diff und eine aussagekräftige Beschreibung für einen Reviewer, der den Code noch nicht gesehen hat.

<div id="keeping-the-stack-coherent">
  ## Den Stack konsistent halten
</div>

Ein Stack ist nach seiner Erstellung nicht unveränderlich. Devin bleibt während der gesamten Sitzung mit jeder PR im Stack verbunden:

* **Konfliktauflösung** — Wenn in einer Schicht Merge-Konflikte mit dem darunterliegenden Branch entstehen (zum Beispiel nachdem Review-Feedback in einer niedrigeren Schicht übernommen wurde oder sich der Trunk unter dem Stack weiterbewegt), wird Devin automatisch benachrichtigt und löst die Konflikte im Hintergrund. Devin fragt Sie nur, wenn ein Konflikt eine inhaltliche Entscheidung betrifft, die Ihre Eingabe erfordert.
* **CI im gesamten Stack** — Devin überwacht die CI für jede Schicht und behebt Fehler, sobald sie auftreten. Dabei verfolgt Devin die Bereitschaft der gesamten Reihe, statt einzelne PRs nacheinander zu betreuen.
* **Automatisches Retargeting** — Wenn die unterste Ebene des Stacks gemergt wird, richtet GitHub die verbleibenden PRs auf den Trunk neu aus. Eine manuelle Rebase-Verwaltung ist nicht erforderlich.

<div id="working-with-stacks">
  ## Arbeiten mit Stacks
</div>

Sie können Devins Stack-Verhalten in einer Sitzung steuern:

* Bitten Sie Devin, eine große Änderung in einen Stack aufzuteilen oder die Arbeit als einzelne PR beizubehalten.
* Bitten Sie Devin, Folge-PRs an einen bestehenden Stack anzuhängen.
* Bitten Sie Devin, den Status eines Stacks zu prüfen — Devin zeigt den Status jeder Schicht, CI, Review-Entscheidung und Merge-Fähigkeit an.
* Bitten Sie Devin, den Stack **aufzulösen** — der Stack wird aufgelöst und seine nicht zusammengeführten PRs werden wieder zu eigenständigen PRs, während ihre Branches unverändert bleiben. Bereits zusammengeführte Schichten bleiben zusammengeführt.

In der Sitzungsansicht wird bei PRs, die zu einem Stack gehören, ihre Stack-Zugehörigkeit angezeigt. Angekündigte Stacks erscheinen bereits, bevor ihre PRs existieren, sodass Sie verfolgen können, wie Devin die Serie erstellt.

<div id="reviewing-and-merging-stacks">
  ## Stacks prüfen und zusammenführen
</div>

[Devin Review](/de/work-with-devin/devin-review#stacked-prs) behandelt Stacks als zentrale Einheit: Die gesamte Reihe ist auf einen Blick sichtbar, einschließlich des Status jeder Schicht, und das Zusammenführen erfolgt atomar von unten nach oben. Weitere Informationen finden Sie im Abschnitt [gestapelte PRs der Devin-Review-Dokumentation](/de/work-with-devin/devin-review#stacked-prs).

<div id="limitations">
  ## Einschränkungen
</div>

* **Nur GitHub.com** — Stacks sind auf GitHub Enterprise Server, GitLab, Bitbucket und Azure DevOps nicht verfügbar.
* **Stack-Größe** — ein Stack enthält zwischen 2 und 100 PRs.
* **Zusammenführen** — gestapelte PRs können nicht über den regulären Merge-Prozess von GitHub zusammengeführt werden. Stattdessen werden sie über den Stack-Merge zusammengeführt, wobei der ausgewählte PR und alle darunterliegenden offenen PRs gemeinsam übernommen werden.
