Freigeben über


Abschließen, Abbrechen oder Zurücksetzen von Pull Requests

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

Visual Studio 2019 | Visual Studio 2022

Tipp

Sie können KI verwenden, um Azure DevOps-Aufgaben zu unterstützen. Informationen zu den ersten Schritten finden Sie unter Enable AI-Unterstützung bei Azure DevOps MCP Server.

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

Kategorie Anforderungen
Projektzugriff Mitglied eines Projekts.
Erlaubnisse - Code in privaten Projekten anzeigen: Mindestens einfacher Zugriff.
- Klonen oder Mitwirken an Code in privaten Projekten: Mitglied der Sicherheitsgruppe "Mitwirkende" oder entsprechende Berechtigungen im Projekt.
- Verzweigungs- oder Repository-Berechtigungen festlegen: "Berechtigungen verwalten" sind Berechtigungen für die Verzweigung oder das Repository.
- Standard-Branch ändern: Bearbeitungsrichtlinien sind Berechtigungen für das Repository.
- Importieren eines Repositorys: Mitglied der Sicherheitsgruppe "Projektadministratoren" oder Git-Projektebene-Berechtigung "Repository erstellen" auf "Zulassen" gesetzt. Weitere Informationen finden Sie unter Festlegen von Git-Repositoryberechtigungen.
Dienste Repos aktiviert.
Werkzeuge Wahlfrei. Verwenden Sie az repos Befehle: Azure DevOps CLI.

Hinweis

In öffentlichen Projekten haben Benutzer mit Stakeholder-Zugriff vollzugriff auf Azure Repos, einschließlich Anzeigen, Klonen und Beitragen zu Code.

Kategorie Anforderungen
Projektzugriff Mitglied eines Projekts.
Erlaubnisse - Code anzeigen: Mindestens einfacher Zugriff.
- Klonen oder Zum Code beitragen: Mitglied der Sicherheitsgruppe "Mitwirkende " oder entsprechende Berechtigungen im Projekt.
Dienste Repos aktiviert.

Weitere Informationen zu Berechtigungen und Zugriff finden Sie unter Standardmäßige Git-Repository- und Branch-Berechtigungen und Informationen zu Zugriffsebenen.

In Azure DevOps Services können Sie PRs und andere Ressourcen über die Azure-Befehlszeilenschnittstelle (CLI) mit der azure-devops-Erweiterung verwalten. Informationen zum Arbeiten mit der Azure DevOps Services CLI finden Sie unter Erste Schritte mit der Azure DevOps CLI. Azure Repos CLI-Befehle für PRs verwenden az repos pr.

Überprüfen von Merge-Änderungen

Wenn Sie einen PR abschließen, fügt Git am Ende des Main-Branchs einen neuen Merge-Commit hinzu. Dieser Merge-Commit verknüpft die früheren Verläufe des Hauptzweigs und des PR-Quellzweigs. 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 Pull Requests (PR) geändert haben, wählen Sie Merge neu starten aus, um einen neuen Vorschau-Mergecommit zu erstellen und die Merge-Änderungsansicht 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 Branch-Policies für Ihren PR gelten, ob sie für das Merge erforderlich sind und ob der PR erfolgreich ist oder fehl schlägt.

Die PR-Registerkarte Übersicht fasst die Branchrichtlinien zusammen, die für den PR bestehen oder nicht bestehen. 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: „View Policy“ neben einer Branchrichtlinienanforderung in einem PR

Einen Pull Request abschließen

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 Ziel-Branch 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, der das vollständige PR-Dialogfeld zeigt

    • 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 Ziel-Branch erstellt wird, ohne dass der Commitverlauf aus dem Quell-Branch 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.
    • Semi-linear-Merge: Rebasen Sie die Quellcommits auf das Ziel und erstellen Sie einen Merge mit zwei übergeordneten Commits.

    Hinweis

    Vorhandene Richtlinien werden erzwungen. Wenn Ihr Branch derzeit eine "Squash-Merge-Only-Richtlinie" hat, müssen Sie diese ändern, wenn Sie einen anderen Merge-Typ verwenden möchten.

  3. Wählen Sie eine der folgenden Optionen nach Abschluss aus. 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.
    • <Branch-Name> nach dem Zusammenführen löschen: Löscht den Quell-Branch 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 Merge-Commit.
    • 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 Befreiung von Richtlinienerzwingung verfügen.
  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

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 Rebase-Strategien verbietet, benötigen Sie die Berechtigung Branchrichtlinien überschreiben, um Rebase durchzuführen.
  • Wenn der PR-Quellbranch Richtlinien aufweist, können Sie dafür kein Rebase durchführen. Der Vorgang „Rebase ausführen“ würde den Quellbranch ändern, ohne den Genehmigungsprozess der Richtlinie zu durchlaufen.
  • Wenn Sie die Merge Conflict Extension verwendet haben, um Mergekonflikte zu lösen, können Sie kein Rebase vornehmen. Konfliktlösungen, die bei einem Drei-Wege-Merge angewendet werden, sind selten erfolgreich oder gültig, wenn alle PR-Commits einzeln mittels eines Rebase-Prozesses bearbeitet werden.

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 Merge-Konflikten

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 Merge-Konflikte zwischen dem PR-Zweig und dem Zielzweig auflösen, bevor Sie einen PR zusammenführen oder den PR zur automatischen Vervollständigung einstellen können. Anweisungen zum Auflösen von Mergekonflikten finden Sie unter Auflösen von Mergekonflikten.

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

Aktivieren Sie die automatische 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 eines PRs im automatischen Vervollständigungsmodus.

Screenshot eines PRs im automatischen Vervollständigungsmodus.

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 zurückgezogenen PR weiterhin 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.

Rückgängig machen eines abgeschlossenen Pull Requests

Führen Sie die folgenden Schritte aus, um die Änderungen in 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 Rückgängig machen 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 zurücksetzen:

    1. Wählen Sie unter Zielbranch den Branch aus, in dem Sie die PR-Änderungen rückgängig machen möchten.
    2. Unter Topic-Branch-Name erforderlich können Sie den Namen des Rücksetzung-PR-Zweigs bei Bedarf ändern.
    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 Pull-Request einen rückgängig gemachten Commit.

Nächste Schritte