Abschließen, Abbrechen oder Wiederherstellen von Pull Requests

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Sobald alle erforderlichen Reviewer Ihren Pull Request (PR) genehmigen und der PR alle Anforderungen der Branchrichtlinien erfüllt, können Sie Ihre Änderungen im Zielbranch zusammenführen und den PR abschließen. Oder wenn Sie sich entscheiden, nicht mit den Änderungen im PR fortzufahren, können Sie den PR verwerfen.

Informationen zum Adressieren der Änderungen der Reviewer und zum Beantworten und Auflösen von Bewertungskommentaren finden Sie unter Behandeln von Kommentaren.

Voraussetzungen

  • Repos muss in Ihrem Projekt aktiviert sein. Wenn der Repos-Hub und die zugehörigen Seiten nicht angezeigt werden, lesen Sie Aktivieren oder Deaktivieren eines Azure DevOps-Diensts, um Repos neu zu aktivieren.

  • Um Ihren PR abzuschließen, müssen Sie Mitglied der Sicherheitsgruppe Mitwirkende sein oder über die entsprechenden Berechtigungen in dem Projekt verfügen, in dem sich der PR befindet.

  • Um zu einem PR beizutragen, müssen Sie Mitglied der Sicherheitsgruppe Leser sein oder über die entsprechenden Berechtigungen verfügen.

  • Um PRs anzuzeigen oder zu überprüfen, müssen Sie über die Zugriffsebene Basic oder höher auf das Azure DevOps-Projekt verfügen.

  • Wenn Sie kein Mitglied des Projekts sind, zu dem Sie beitragen möchten, lassen Sie sich hinzufügen.

    Hinweis

    Bei öffentlichen Projekten haben Benutzer, denen Beteiligtenzugriff eingeräumt wurde, vollen Zugriff auf Azure Repos.

  • Repos muss in Ihrem Projekt aktiviert sein. Wenn der Repos-Hub und die zugehörigen Seiten nicht angezeigt werden, lesen Sie Aktivieren oder Deaktivieren eines Azure DevOps-Diensts, um Repos neu zu aktivieren.
  • Um einen PR abzuschließen, müssen Sie in dem zu ändernden Projekt ein Mitglied der Sicherheitsgruppe Mitwirkende sein oder über die entsprechenden Berechtigungen verfügen.
  • Um zu einem PR beizutragen, müssen Sie Mitglied der Sicherheitsgruppe Leser sein oder über die entsprechenden Berechtigungen verfügen.
  • Um PRs anzuzeigen oder zu überprüfen, müssen Sie Mitglied des Azure DevOps-Projekts mit Zugriff der Ebene Basic oder höher sein. Wenn Sie kein Projektmitglied sind, lassen Sie sich hinzufügen.

Überprüfen von Mergeänderungen

Wenn Sie einen PR abschließen, fügt Git am Ende des Mainbranchs einen neuen Mergecommit hinzu. Dieser Mergecommit verknüpft die früheren Verläufe des Mainbranchs und des PR-Quellbranchs. Um die Vorschau des Mergecommits anzuzeigen und auf Mergekonflikte zu überprüfen, wählen Sie das Menü Weitere Optionen oben rechts auf einer PR-Seite Übersicht und dann die Option Mergeänderungen anzeigen aus.

Wenn Sie den Zielbranch nach dem Erstellen des PRs geändert haben, wählen Sie Merge neu starten aus, um eine neue Vorschau des Mergecommits zu erstellen und die Ansicht mit den Mergeänderungen zu aktualisieren.

Screenshot: Optionen „Merge anzeigen“ und „Merge neu starten“ im Menü „Weitere Optionen“ des PR

Überprüfen der Branchrichtlinien

Teams können Branchrichtlinien festlegen, die PRs in geschützten Branches erfordern, um bestimmte Kriterien zu erfüllen, bevor die PRs zusammengeführt werden können. Sie können sehen, welche Branchrichtlinien für Ihren PR gelten, ob sie für die Zusammenführung erforderlich sind und ob der PR angenommen wird oder fehlerhaft ist.

Die PR-Registerkarte Übersicht fasst die Branchrichtlinien zusammen, die für den PR bestanden oder nicht bestanden wurden. In der Übersicht werden nur fehlerhafte Richtlinien aufgelistet, aber Sie können alle Richtlinienüberprüfungen anzeigen, indem Sie <n> Überprüfungen anzeigen auswählen.

Auf der PR-Seite „Übersicht“ sind die Anforderungen der Branchrichtlinien mit einem -Symbol versehen. Wählen Sie Weitere Optionen neben der Anforderung und dann Richtlinie anzeigen aus, um zur Seite Branchrichtlinien für den Branch in Projekteinstellungen zu gelangen.

Screenshot: „Richtlinie anzeigen“ neben einer Branchrichtlinienanforderung in einem PR

Abschließen eines Pull Requests

Nachdem Sie alle Mergekonflikte gelöst haben und der PR alle Branchrichtlinien erfüllt und alle erforderlichen Genehmigungen erhalten hat, können Sie den PR abschließen.

  1. Wählen Sie Abschließen oben rechts aus, um den PR abzuschließen. Oder wählen Sie den Dropdownpfeil neben der Schaltfläche Abschließen und dann eine der Optionen aus.

    Screenshot: Optionen der Schaltfläche „Abschließen“ für den PR

    • Abschließen: Schließen Sie den PR jetzt ab, und führen Sie die Änderungen mit dem Zielbranch zusammen.
    • Automatische Vervollständigung festlegen: Konfigurieren Sie den PR so, dass er abgeschlossen und zusammengeführt wird, sobald er alle erforderlichen Branchrichtlinien erfüllt.
    • Als Entwurf markieren: Versetzt den PR wieder in den Entwurfsstatus und entfernt alle Bewertungen.
    • Abbrechen: Schließen Sie den PR, ohne die Änderungen zusammenzuführen.
  2. Wählen Sie im Bereich Pull Request abschließen unter Mergetyp eine der Zusammenführungsoptionen aus.

    Screenshot: Vollständiges PR-Dialogfeld

    • Merge (kein schneller Vorlauf): Merge mit einem nichtlinearen Verlauf, der alle Commits beibehält.
    • Squashcommit: Merge mit einem linearen Verlauf, der alle Quellcommits zu einem einzelnen Commit im Ziel zusammenfasst oder einen Squashmerge für den PR durchführt. Beachten Sie, dass ein neuer Commit für den Zielbranch erstellt wird, ohne dass der Commitverlauf aus dem Quellbranch erhalten bleibt.
    • Rebase ausführen und schneller Vorlauf: Führen Sie ein Rebase für die Quellcommits auf das Ziel und einen schnellen Vorlauf aus.
    • Semilinearer Merge: Führen Sie ein Rebase für die Quellcommits auf das Ziel aus, und erstellen Sie einen Merge für zwei übergeordnete Elemente.

    Hinweis

    Vorhandene Richtlinien werden erzwungen. Wenn Ihr Branch z. B. derzeit die Richtlinie „Nur Squashmerge“ aufweist, müssen Sie diese Richtlinie ändern, wenn Sie einen anderen Mergetyp verwenden möchten.

  3. Wählen Sie eine der folgenden Optionen aus, die nach dem Abschluss angewendet werden. Einige Optionen sind für einige Mergetypen nicht verfügbar.

    • Zugeordnete Arbeitselemente nach dem Zusammenführen abschließen: Schließen Sie alle verknüpften Arbeitselemente ab.
    • <Branchname> nach dem Zusammenführen löschen: Löscht den Quellbranch des PR nach dem Zusammenführen.
    • Nachricht für Mergecommit anpassen: Fügen Sie eine benutzerdefinierte Nachricht für den Mergecommit hinzu. Wenn Sie diese Option auswählen, aktualisieren Sie die Nachricht für den Mergecommit.
    • Branchrichtlinien überschreiben und Merge aktivieren. Erzwingen Sie den Merge, auch wenn der PR nicht alle Branchrichtlinien erfüllt. Diese Option ist nur verfügbar, wenn Sie über die Berechtigung Ausgenommen von Richtlinienerzwingung verfügen.
  4. Wählen Sie Merge abschließen aus.

  1. Wählen Sie Abschließen oben rechts aus, um den PR abzuschließen. Oder wählen Sie den Dropdownpfeil neben der Schaltfläche Abschließen und dann eine der folgenden Optionen aus:

    Screenshot: Optionen der Schaltfläche „Abschließen“ für den PR

    • Abschließen: Schließen Sie den PR jetzt ab, und führen Sie die Änderungen mit dem Zielbranch zusammen.
    • Automatische Vervollständigung festlegen: Wenn Sie über Branchrichtlinien verfügen, konfigurieren Sie den PR so, dass er abgeschlossen und zusammengeführt wird, sobald er alle erforderlichen Branchrichtlinien erfüllt.
    • Abbrechen: Schließen Sie den PR, ohne die Änderungen zusammenzuführen.
  2. Geben Sie auf dem Bildschirm Pull Request abschließen die Nachricht für den Mergecommit ein, und aktualisieren Sie die PR-Beschreibung.

    Dialogfeld „Pull Request abschließen“

  3. Aktivieren Sie eine der folgenden Optionen:

    • Verknüpfte Arbeitselemente nach dem Mergen abschließen, um alle verknüpften Arbeitselemente abzuschließen.

    • <branch name> nach dem Mergen löschen, um den Quellbranch aus dem PR zu löschen.

    • Squash für Änderungen beim Mergen, um einen Squashmerge für Ihren PR auszuführen. Beachten Sie, dass ein neuer Commit für den Zielbranch erstellt wird, ohne dass der Commitverlauf aus dem Quellbranch erhalten bleibt.

    • Branchrichtlinien überschreiben und Merge aktivieren, um das Mergen eines Branchs zu erzwingen, auch wenn er nicht alle Branchrichtlinien erfüllt. Diese Option ist nur verfügbar, wenn Sie über die Berechtigung Ausgenommen von Richtlinienerzwingung verfügen.

      Hinweis

      Vorhandene Richtlinien werden weiterhin erzwungen. Wenn z. B. in Ihrem Branch derzeit die Richtlinie „Nur Squashmerge“ gilt, müssen Sie diese Richtlinie bearbeiten, um die anderen Mergetypen verwenden zu können.

  4. Wählen Sie Merge abschließen aus.

Wenn Sie den Merge abschließen, werden alle verknüpften Arbeitselemente automatisch aktualisiert, um den PR-Abschluss anzuzeigen.

Screenshot: Verknüpfte Arbeitselemente zeigen abgeschlossene PRs an

Ausführen von Rebase während des PR-Abschlusses

Es gibt einige Situationen, in denen das Ausführen von Rebase während des PR-Abschlusses nicht möglich ist:

  • Wenn eine Richtlinie für den Zielbranch die Verwendung von Rebasestrategien verbietet, benötigen Sie die Berechtigung Branchrichtlinien überschreiben für den Vorgang „Rebase ausführen“.
  • Wenn der PR-Quellbranch Richtlinien aufweist, können Sie führ ihn kein Rebase ausführen. Der Vorgang „Rebase ausführen“ würde den Quellbranch ändern, ohne den Genehmigungsprozess der Richtlinie zu durchlaufen.
  • Wenn Sie die Mergekonflikterweiterung zum Auflösen von Mergekonflikten verwendet haben, können Sie kein Rebase ausführen. Konfliktlösungen, die auf einen Drei-Weg-Merge angewandt werden, sind selten erfolgreich oder gültig, wenn für alle PR-Commits einzeln ein Rebase ausgeführt wird.

In all diesen Fällen können Sie den Vorgang „Rebase ausführen“ für Ihren Branch immer noch lokal vornehmen und dann Upstream pushen oder Ihre Änderungen nach Abschluss des PRs per Squashmerge zusammenführen.

Problem mit mehreren Mergebasen

In einigen Fällen hat ein PR mehr als eine wahre Mergebasis, und diese Situation kann zu Sicherheitsproblemen führen. Wenn die Dateien im PR unterschiedliche Versionen zwischen den Zusammenführungsbasen aufweisen, wird eine Warnung über mehrere Zusammenführungsbasen ausgegeben. Weitere Informationen und Abhilfemaßnahmen finden Sie unter Mehrere Mergebasen.

Lösen von Mergekonflikten

Dateiänderungen in Ihrem Branch können mit Änderungen in einem anderen Branch in Konflikt geraten. Wenn nicht klar ist, wie die Änderungen zusammengeführt werden sollen, zeigt Git die Dateien, die einen Konflikt aufweisen, auf der Seite Übersicht für den PR an. Sie müssen alle Mergekonflikte zwischen dem PR-Branch und dem Zielbranch auflösen, bevor Sie einen PR zusammenführen oder den PR auf automatische Vervollständigung festlegen können. Anweisungen zum Auflösen von Mergekonflikten finden Sie unter Auflösen von Mergekonflikten.

Screenshot: Mergekonflikte auf der Registerkarte „Übersicht“ eines PRs

Festlegen der automatischen Vervollständigung für Pull Request

Wählen Sie in der Dropdownliste Abschließen die Option Automatische Vervollständigung festlegen auswählen, um die PR-Änderungen abzuschließen und zusammenzuführen, sobald die Bedingungen alle Branchrichtlinien erfüllen. Wenn der PR abgeschlossen ist, erhalten Sie eine E-Mail-Benachrichtigung. Wenn ein Konflikt oder ein Fehler den PR-Abschluss verhindert, werden Sie per E-Mail über das Problem benachrichtigt.

Hinweis

Die Option Automatische Vervollständigung festlegen ist in Azure Repos und TFS 2017 und höher verfügbar, wenn Sie über Branchrichtlinien verfügen. Wenn die Option Automatische Vervollständigung festlegen nicht angezeigt wird, verfügen Sie nicht über Branchrichtlinien. Weitere Informationen finden Sie unter Branchrichtlinien.

Standardmäßig wartet ein PR, der auf automatische Vervollständigung festgelegt ist, nur auf erforderliche Richtlinien. Im Bereich Automatische Vervollständigung aktivieren können Sie auswählen, ob Sie auch auf optionale Richtlinien warten möchten.

Screenshot: Änderung einer optionalen Richtlinie in „Erforderlich“ im Bereich „Automatische Vervollständigung aktivieren“

Ab TFS 2018 Update 2 zeigt die PR-Seite Übersicht die Liste der ausstehenden Richtlinienkriterien an, auf die der PR wartet. Wenn Sie eine Richtlinie im Bereich Automatische Vervollständigung aktivieren als erforderlich festgelegt haben, können Sie sie auf der Seite Übersicht wieder auf „Optional“ zurücksetzen.

Wählen Sie Automatische Vervollständigung abbrechen aus, um die automatische Vervollständigung zu deaktivieren.

Screenshot: PR im Zustand „Automatische Vervollständigung“

Screenshot: PR im Zustand „Automatische Vervollständigung“

Ein auf die automatische Vervollständigung festgelegter PR zeigt auf der Seite Pull Requests ein Badge für die Automatische Vervollständigung an.

Screenshot: PR mit automatischer Vervollständigung in der PR-Liste

Abbrechen oder Reaktivieren eines Pull Requests

Um Ihre Änderungen und Ihren PR ohne Zusammenführung abzubrechen, wählen Sie Abbrechen aus der Dropdownliste für die Schaltfläche Abschließen aus. Sie können den abgebrochenen PR immer noch anzeigen und er bleibt mit Arbeitselementen verknüpft.

Um einen abgebrochenen PR jederzeit zu reaktivieren, öffnen Sie den PR auf der Registerkarte Abgebrochen in der Ansicht Pull Request, und wählen Sie oben rechts die Option Reaktivieren aus.

Wiederherstellen abgeschlossener Pull Requests

Führen Sie die folgenden Schritte aus, um die Änderungen an einem PR rückgängig zu machen. Weitere Informationen finden Sie unter Rückgängigmachen von Änderungen.

  1. Öffnen Sie den abgeschlossenen PR, und wählen Sie Wiederherstellen aus. Diese Aktion erstellt einen neuen Branch mit Änderungen, die den PR in einem bestehenden Zielbranch in Ihrem Repository rückgängig machen.

  2. Im Bereich Pull Request wiederherstellen:

    1. Wählen Sie unter Zielbranch den Branch aus, in dem Sie die PR-Änderungen rückgängig machen möchten.
    2. Ändern Sie unter Name des Topic-Branchs ist erforderlich bei Bedarf den Namen zum Wiederherstellen des PR-Branchs.
    3. Wählen Sie Wiederherstellen aus.
  3. Wählen Sie auf dem Bildschirm Neuer Pull Request die Option Erstellen aus.

  4. Führen Sie den neuen PR zusammen, um die Wiederherstellung abzuschließen.

Hinweis

Der Branch, der bei dieser Wiederherstellung erstellt wird, hat einen einzelnen Commit, der alle Dateiänderungen aus dem ursprünglichen PR rückgängig macht. Der Branch enthält nicht für jeden der Commits im ursprünglichen PR einen wiederhergestellten Commit.

Nächste Schritte