Freigeben über


Auflösen von Zusammenführungskonflikten in Visual Studio

Wenn Sie eine Verzweigung in eine andere zusammenführen, können Dateiänderungen von Commits in einer Verzweigung mit den Änderungen des anderen in Konflikt treten. Git versucht, diese Änderungen mithilfe des Verlaufs in Ihrem Repository zu beheben, um zu bestimmen, wie die zusammengeführten Dateien aussehen sollen. Wenn nicht klar ist, wie Änderungen zusammengeführt werden, stoppt Git den Merge und teilt Ihnen mit, welche Dateien Konflikte aufweisen.

Vermeidung von Merge-Konflikten

Git eignet sich gut zum automatischen Zusammenführen von Dateiänderungen unter den meisten Umständen, solange sich der Dateiinhalt nicht erheblich zwischen Commits ändert. Wenn Ihr Branch weit hinter dem Mainbranch liegt, sollten Sie bei Ihren Branches ein Rebase ausführen, bevor Sie einen Pull Request öffnen. Umbasierte Branches werden ohne Konflikte in Ihren Mainbranch gemergt.

Lösen von Mergekonflikten

  • Wenn Sie mit anderen im selben Branch zusammenarbeiten, können Mergekonflikte auftreten, wenn Sie Ihre Änderungen pushen.

    Screenshot: Mergekonflikt nach einem Push

  • Visual Studio erkennt, ob der lokale Branch, an dem Sie gearbeitet haben, hinter dem zugehörigen Remote-Tracking-Branch zurückliegt, und bietet Ihnen dann verschiedene Auswahlmöglichkeiten.

    Screenshot der verfügbaren Optionen, wenn sich die lokale Verzweigung hinter der Remote-Verzweigung befindet.

    Anmerkung

    Wenn Ihr Remoterepository Push erzwingen unterstützt, können Sie dies über Git>Einstellungen aktivieren.

    Wählen Sie in diesem Beispiel Pull und dann Push aus, um Änderungen einzuschließen, die im Remote-Repository eingeführt wurden. Wenn beim Pullen von Änderungen oder beim Mergen von zwei Branches Mergekonflikte auftreten, informiert Visual Studio Sie im Fenster Git-Änderungen, im Fenster Git-Repository und bei Dateien, die Konflikte aufweisen.

    Screenshot einer Benachrichtigung über einen Merge-Konflikt.

  • Im Fenster Git-Changes wird eine Liste von Dateien mit Konflikten unter Nicht gemergete Änderungen angezeigt. Um mit der Lösung von Konflikten zu beginnen, doppelklicken Sie auf eine Datei. Wenn Sie eine Datei mit Konflikten im Editor geöffnet haben, können Sie auch Merge-Editor öffnen auswählen.

    Screenshot: Mergekonfliktstatus im Fenster „Git-Änderungen“

  • Beginnen Sie im Merge-Editor mit der Lösung Ihres Konflikts durch eine der folgenden Methoden (wie im nummerierten Screenshot dargestellt).

    1. Gehen Sie Ihre Konflikte Zeile für Zeile durch und wählen Sie zwischen der rechten oder linken Seite, indem Sie die entsprechenden Kontrollkästchen auswählen.

      -oder-

    2. Wählen Sie die Schaltfläche "Eingehende übernehmen" aus (oder drücken Sie F10), um alle eingehenden Änderungen zu akzeptieren, oder Schaltfläche "Aktuelle übernehmen" (oder drücken Sie F11), um Ihre aktuelle Version aller widersprüchlichen Änderungen beizubehalten. Sie können dasselbe tun, indem Sie eines der Kontrollkästchen oben in einem der nebeneinander liegenden Rahmen auswählen.

      -oder-

    3. Bearbeiten Sie den Code manuell im Fenster Resultat.

    Screenshot, der zeigt, wie ein Zusammenführungskonflikt in Visual Studio 2022 aufgelöst wird.

    Tipp

    Wenn Ihnen das Standardlayout im Merge-Editor nicht gefällt, können Sie es über das Zahnradsymbol im Dropdown-Menü ändern.

    Screenshot: Layoutoptionen des Merge-Editors

    Der folgende Screenshot zeigt beispielsweise, wie die vertikale Ansicht aussieht:

    Screenshot der vertikalen Ansicht auf der Benutzeroberfläche des Zusammenführungs-Editors.

  • Wählen Sie nach der Auflösung der Mergekonflikte Merge akzeptieren aus. Wiederholen Sie diesen Vorgang für alle widersprüchlichen Dateien.

    Screenshot der Aktion

  • Verwenden Sie das Git Changes Fenster, um einen Zusammenführungs-Commit zu erstellen und den Konflikt zu lösen.

    Screenshot zum Erstellen eines Zusammenführungs-Commits mithilfe des Git-Fensters

    Anmerkung

    Wenn Sie alle Änderungen an einer Datei beibehalten möchten, können Sie im Abschnitt Nicht zusammengeführte Änderungen mit der rechten Maustaste darauf klicken und Aktuelle Version (lokal) auswählen, ohne den Merge-Editor öffnen zu müssen.

    Screenshot der Menüoption

Tipp

Weitere Informationen zu den verfügbaren Barrierefreiheitsoptionen finden Sie im Git-Tastenkombinationen Abschnitt der Tipps und Tricks zur Barrierefreiheit in Visual Studio.

Ihr Diff-Tool konfigurieren

Wenn Sie Ihre .gitconfig Datei festlegen, um ein Diff-Tool eines Drittanbieters wie BeyondCompare oder KDiff3 zu verwenden, respektiert Visual Studio sie. Wenn Visual Studio normalerweise einen Diff anzeigt, wird im Tool Ihrer Wahl ein separates Fenster geöffnet. Ein Beispiel hierzu finden Sie in dieser Stack Overflow-Frage.