Pull-Request-Konflikte lösen

Übersicht

Dieser Artikel erklärt die Gründe für Pull-Request-Konflikte und die gängigen Szenarien, in denen sie auftreten. Er enthält außerdem detaillierte, schrittweise Anleitungen zum effektiven Überprüfen und Beheben dieser Konflikte.

Was verursacht einen Pull-Request-Konflikt?

Ein Pull-Request-Konflikt kann auftreten, wenn zwei Branches Commits haben, die dieselbe Codezeile betreffen, und der Pull Request nicht automatisch bestimmen kann, welche Zeile beibehalten werden soll. Zur Veranschaulichung, wie dies geschehen kann, siehe das folgende Diagramm.

In diesem Beispiel, branch_b wird erstellt aus branch_a. Als Nächstes wird eine Änderung, die die myName Funktion betrifft, in branch_bcommitted, und eine andere Änderung an der Funktion wird in branch_acommitted. Wenn ein Pull Request erstellt wird, um branch_b in branch_azu mergen, erkennt der Pull Request, dass dieselbe Codezeile in beiden Branches geändert wurde, was zu einem Konflikt führt. Im folgenden Abschnitt sehen Sie zwei verschiedene Optionen zum Beheben des Konflikts.

Wie behebt man einen Pull-Request-Konflikt?

Wenn ein Pull Request auf einen Konflikt stößt, können Sie ihn lösen, indem Sie entweder die Änderungen des Ziel-Branches beibehalten oder überschreiben. Bei mehreren Konflikten bearbeiten Sie jeden einzeln mit der jeweils passendsten Methode; es ist in Ordnung, verschiedene Ansätze für unterschiedliche Konflikte zu verwenden.

chevron-rightÄnderungen des Ziel-Branches beibehaltenhashtag

Um Konflikte mit dieser Methode zu lösen, committen Sie die konfliktbehafteten Zeilen aus dem Ziel- Branch in den Quell- Branch. Siehe das Diagramm zur Veranschaulichung und beachten Sie die schrittweisen Anweisungen im Pull-Request-Konflikte lösen untenstehenden Abschnitt.

circle-info

Diese Methode verwendet die Konflikte lösen Funktion in einem Pull Request, um die Änderungen automatisch in den Quell-Branch zu committen.

chevron-rightÄnderungen des Ziel-Branches überschreibenhashtag

Um Konflikte mit dieser Methode zu lösen, committen Sie die konfliktbehafteten Zeilen aus dem Quell- Branch in den Ziel- Branch. Siehe das Diagramm zur Veranschaulichung und beachten Sie die schrittweisen Anweisungen im Pull-Request-Konflikte lösen untenstehenden Abschnitt.

circle-info

Diese Methode erfordert, dass Sie die Änderungen manuell aus dem Quell- Branch in den Ziel- Branch committen.

Konflikte lösen

1

Pull-Request-Konflikte

Wenn ein Pull Request erstellt wird, wird zunächst ein Konflikt-Check durchgeführt. Wenn Konflikte zwischen den Ziel und Quelle Branches gefunden werden, wird eine Warnung angezeigt und Sie müssen die Konflikte beheben, bevor der Pull Request gemerged werden kann.

2

Konflikte überprüfen

  1. Klicken Sie Konflikte lösen.

  2. Klicken Sie auf eine Komponente, um die Konflikte anzuzeigen.

circle-exclamation
  1. Überprüfen Sie den konfliktbehafteten Code in der Komponente und bestimmen Sie, wie der Konflikt gelöst werden soll.

circle-info

Siehe den Pull-Request-Konflikte lösen Abschnitt oben für eine Erklärung von Pull-Request-Konflikten.

  1. Es gibt zwei Möglichkeiten, einen Pull-Request-Konflikt zu lösen. Siehe die folgenden Abschnitte für Anweisungen, wie jede ausgeführt wird.

    1. Änderungen des Ziel-Branches beibehalten: Diese Methode behält den Code des Ziels bei, indem die konfliktbehafteten Zeilen aus dem Ziel- Branch in den Quell- Branch committen.

    2. Änderungen des Ziel-Branches überschreiben: Diese Methode behält den Code der Quelle bei, indem die konfliktbehafteten Zeilen aus dem Quell- Branch in den Ziel- Branch committen.

circle-info

Bei mehreren Konflikten bearbeiten Sie jeden einzeln mit der jeweils passendsten Methode; es ist in Ordnung, verschiedene Ansätze für unterschiedliche Konflikte zu verwenden.

3

Änderungen des Ziel-Branches beibehalten

Diese Methode verwendet die Konflikte lösen in einen Pull Request integrierte Funktion.

  1. Klicken Sie auf eine Komponente mit Konflikten, um sie zu lösen.

  2. Klicken Sie Alle übernehmen um alle Zeilen beizubehalten, oder klicken Sie auf den Rechts Pfeil für jede Zeile, die beibehalten werden soll. Dies kopiert die ausgewählte Zeile vom Ziel-Branch in den Quell-Branch.

  3. Sobald alle erforderlichen Änderungen am Quell-Branch vorgenommen wurden, klicken Sie auf Beheben. Dies markiert eine Komponente als Gelöst , damit Sie Ihre Änderungen nachverfolgen können.

  4. Klicken Sie Zurück.

circle-info

Wiederholen Sie diesen Vorgang für alle Komponenten mit Konflikten.

  1. Sobald alle Komponenten als Gelöstmarkiert sind, klicken Sie auf Konflikte lösen.

  2. Geben Sie eine Commit-Nachricht.

  3. Klicken Sie Beheben.

  4. Nachdem die Konflikte gelöst wurden, überprüft der Pull Request erneut auf Konflikte.

  5. Wenn keine Konflikte mehr vorhanden sind, wird die Pull-Request-Meldung grün und lautet "Dieser Branch kann gemerged werden".

circle-info

Wenn weiterhin Konflikte im Pull Request bestehen, überprüfen und lösen Sie diese. Wiederholen Sie den Vorgang, bis alle Probleme behoben sind.

4

Änderungen des Ziel-Branches überschreiben

Diese Methode erfordert das manuelle Bearbeiten und Committen von Änderungen in den Ziel-Branch.

circle-info

Um das Lösen von Konflikten zu erleichtern, wenn Änderungen im Ziel-Branch überschrieben werden, notieren Sie beim Überprüfen des Pull Requests die spezifischen Zeilen und Komponenten, die Konflikte verursachen.

  1. Klicken Sie Code aus dem linken Seitenmenü.

  2. Klicken Sie auf den Ziel- Branch des Pull Requests.

  3. Klicken Sie auf den Drei vertikale Punkte am rechten Ende einer Komponente mit Konflikten im Pull Request.

  4. Klicken Sie Bearbeiten.

  5. Bearbeiten Sie die konfliktbehaftete(n) Codezeile(n), sodass sie dem Quell- Branch committen.

  6. Klicken Sie Änderungen committen.

  7. Geben Sie eine Commit-Nachricht.

  8. Klicken Sie Commit.

circle-info

Wiederholen Sie diesen Vorgang für alle Komponenten mit Konflikten.

  1. Sobald alle Komponenten mit Konflikten so bearbeitet wurden, dass sie dem Quell- Branch entsprechen, kehren Sie zum Pull Request zurück.

  2. Klicken Sie Pull Requests aus dem linken Seitenmenü.

  3. Klicken Sie auf den Pull Request, um zu prüfen, ob alle Konflikte gelöst sind.

  4. Wenn keine Konflikte mehr vorhanden sind, wird die Pull-Request-Meldung grün und lautet "Dieser Branch kann gemerged werden".

circle-info

Wenn weiterhin Konflikte im Pull Request bestehen, überprüfen und lösen Sie diese. Wiederholen Sie den Vorgang, bis alle Probleme behoben sind.

Zuletzt aktualisiert

War das hilfreich?