Merge-Konflikte in VS Code auflösen
Merge-Konflikte treten auf, wenn Git Änderungen aus verschiedenen Branches nicht automatisch zusammenführen kann. VS Code bietet mehrere Tools, um Ihnen zu helfen, diese Konflikte effizient zu identifizieren und zu beheben.
Erfahren Sie, wie Sie Merge-Konflikte in Visual Studio Code mithilfe von Inline-Editor-Aktionen, dem 3-Wege-Merge-Editor und KI-gestützter Auflösung beheben.
Merge-Konflikte verstehen
Ein Merge-Konflikt entsteht, wenn Git konkurrierende Änderungen feststellt, die es nicht automatisch auflösen kann. Häufige Szenarien sind:
- Zwei Branches ändern dieselben Zeilen in einer Datei
- Ein Branch löscht eine Datei, die ein anderer Branch ändert
- Zwei Branches fügen unterschiedliche Inhalte an derselben Stelle ein
Wenn Sie versuchen, Commits zu mergen, zu rebasen, zu pullen oder zu cherry-picken, die widersprüchliche Änderungen enthalten, pausiert Git den Vorgang und markiert die Konflikte zur manuellen Behebung.
Erfahren Sie mehr über das Erstellen und Verwalten von Branches, um Ihre Entwicklungsarbeit zu organisieren und Merge-Konflikte zu minimieren.
Konflikte in VS Code erkennen
Wenn Merge-Konflikte auftreten, bietet VS Code mehrere visuelle Indikatoren, die Ihnen helfen, diese zu identifizieren und zu beheben. Dateien mit Konflikten werden in der Ansicht "Quellcodeverwaltung" unter der Überschrift Änderungen zusammenführen angezeigt.
Konfliktmarkierungen im Editor
Wenn Sie eine Datei mit Konflikten öffnen, hebt VS Code die konfliktierenden Abschnitte mit den folgenden Markierungen hervor:
<<<<<<< HEAD(oder aktueller Branch-Name): markiert den Anfang der Änderungen Ihres aktuellen Branches=======: trennt die beiden widersprüchlichen Versionen>>>>>>> branch-name: markiert das Ende der Änderungen des eingehenden Branches

CodeLens-Aktionen
Über jedem Konflikt zeigt VS Code CodeLens-Aktionen an, mit denen Sie den Konflikt schnell beheben können:
- Aktuelle Änderung übernehmen: behält nur die Version Ihres Branches
- Eingehende Änderung übernehmen: behält nur die Version des eingehenden Branches
- Beide Änderungen übernehmen: behält beide Versionen nacheinander
- Änderungen vergleichen: öffnet eine Diff-Ansicht, um die Unterschiede nebeneinander anzuzeigen
Konflikte mit Inline-Aktionen auflösen
Bei einfachen Konflikten können Sie diese direkt im Editor mithilfe der CodeLens-Aktionen beheben.
-
Öffnen Sie eine Datei mit Konflikten aus der Ansicht "Quellcodeverwaltung".
-
Überprüfen Sie die mit Konfliktmarkierungen gekennzeichneten Bereiche.
-
Wählen Sie eine der CodeLens-Aktionen über dem Konflikt aus.
- Aktuelle Änderung übernehmen, um Ihre Version beizubehalten.
- Eingehende Änderung übernehmen, um die eingehende Version beizubehalten.
- Beide Änderungen übernehmen, um beide Versionen beizubehalten.
-
Wiederholen Sie dies für jeden Konflikt in der Datei.
-
Speichern Sie die Datei, wenn alle Konflikte behoben sind.
Nachdem Sie die Konflikte in einer Datei behoben haben, verschwinden die Konfliktmarkierungen und Sie können die Datei stagen, wodurch sie im Bereich Gestagte Änderungen in der Ansicht "Quellcodeverwaltung" verschoben wird. Anschließend können Sie die Änderungen committen.
Bei komplexeren Konflikten, bei denen Sie Teile beider Änderungen kombinieren müssen, können Sie die Datei manuell bearbeiten. Löschen Sie die Konfliktmarkierungen (<<<<<<<, =======, >>>>>>>) und bearbeiten Sie den Inhalt, um das gewünschte Ergebnis zu erzielen.
Den 3-Wege-Merge-Editor verwenden
Verwenden Sie für komplexere Konflikte oder wenn Sie eine nebeneinanderliegende Ansicht aller Änderungen wünschen, den 3-Wege-Merge-Editor. Dieser Editor bietet eine umfassende Ansicht mit drei Bereichen:
- Eingehend (links): Änderungen aus dem zu mergenden Branch
- Aktuell (rechts): Änderungen aus Ihrem aktuellen Branch
- Ergebnis (unten): das zusammengeführte Ergebnis, das gespeichert wird
Öffnen des Merge-Editors
So öffnen Sie den 3-Wege-Merge-Editor:
-
Wählen Sie eine Datei mit Konflikten in der Ansicht "Quellcodeverwaltung" aus.
-
Wählen Sie im Kontextmenü Im Merge-Editor öffnen aus oder wählen Sie die Schaltfläche Im Merge-Editor auflösen, die oben im Editor angezeigt wird.

Akzeptieren von Änderungen im Merge-Editor
Der Merge-Editor zeigt Konflikte mit Kontrollkästchen neben jeder widersprüchlichen Änderung an. Verwenden Sie diese Kontrollkästchen, um auszuwählen, welche Änderungen übernommen werden sollen.
-
Überprüfen Sie die Änderungen in den Bereichen Eingehend und Aktuell.
-
Verwenden Sie die CodeLens-Aktionen des Editors, um auszuwählen, welche Änderungen übernommen werden sollen.
- Akzeptieren Sie entweder die eingehende oder die aktuelle Änderung.
- Akzeptieren Sie eine Kombination aus beiden Änderungen, um beide Änderungen intelligent zusammenzuführen.
- Ignorieren Sie die Änderung, um sie aus dem Ergebnis auszuschließen.
-
Der Bereich Ergebnis unten wird automatisch aktualisiert, um Ihre Auswahlen anzuzeigen.
-
Verwenden Sie die Konfliktanzahl-Anzeige rechts im Ergebnis-Editor, um zu verfolgen, wie viele ungelöste Konflikte noch verbleiben.
-
Wenn alle Konflikte behoben sind, wählen Sie Merge abschließen, um die Änderungen zu stagen und den Merge-Editor zu schließen.
Manuelle Bearbeitungen im Merge-Editor
Manchmal müssen Sie Teile beider Änderungen kombinieren oder eine völlig neue Auflösung erstellen. Sie können den Bereich Ergebnis direkt bearbeiten.
-
Klicken Sie irgendwo in den Bereich Ergebnis, um Ihren Cursor zu platzieren.
-
Bearbeiten Sie den Inhalt nach Bedarf, indem Sie Elemente aus beiden Änderungen kombinieren oder neuen Code schreiben.
Verwenden Sie die Schaltflächen Ignorieren in den Bereichen Eingehend oder Aktuell, um Änderungen auszublenden, die Sie nicht übernehmen möchten. Dies hilft, sich auf die relevanten Konflikte zu konzentrieren.
Alternative Layouts
Das Klicken auf die drei Punkte (···) in der oberen rechten Ecke des Merge-Editors öffnet ein Kontextmenü mit zusätzlichen Optionen. Sie können zu einem vertikalen Layout wechseln und die Basisansicht anzeigen, die den Zustand der Datei vor allen Änderungen zeigt.
Die drei Punkte neben Eingehend, Aktuell und Ergebnis bieten Optionen für jede Ansicht, z. B. die Anzeige eines Side-by-Side-Diffs gegen die Basis, die Übernahme aller Änderungen oder das Zurücksetzen des Ergebnisses.
Konflikte mit KI auflösen (experimentell)
Die KI-gestützte Konfliktlösung ist eine experimentelle Funktion und erfordert ein GitHub Copilot-Abonnement.
VS Code kann KI verwenden, um Merge-Konflikte automatisch zu lösen. Diese Funktion analysiert beide Versionen der widersprüchlichen Änderungen und schlägt eine Auflösung vor.
-
Öffnen Sie eine Datei mit Konflikten im Editor.
-
Wählen Sie die Schaltfläche Merge-Konflikt mit KI auflösen oben im Editor.

-
VS Code öffnet die Chat-Ansicht und startet einen agentenbasierten Flow zur Analyse des Konflikts.
-
Überprüfen Sie die vorgeschlagenen Änderungen im Editor.
-
Akzeptieren Sie die Auflösung oder nehmen Sie bei Bedarf manuelle Anpassungen vor.
Die KI berücksichtigt die Merge-Basis (den gemeinsamen Vorfahren beider Branches) und die Änderungen aus jedem Branch, um eine Auflösung zu generieren, die versucht, die Absicht beider Änderungen zu erhalten.
Den Merge-Vorgang abschließen
Nachdem Sie alle Konflikte behoben haben, müssen Sie den Merge-Vorgang abschließen, indem Sie die Änderungen committen.
-
Vergewissern Sie sich, dass alle konfliktierenden Dateien behoben sind und sich im Bereich Gestagte Änderungen befinden.
-
Geben Sie eine Commit-Nachricht ein und wählen Sie Commit, um den Merge abzuschließen.
Wenn Sie einen Merge-Vorgang abbrechen müssen, wählen Sie Git: Merge abbrechen aus der Befehlspalette. Dies setzt Ihr Repository in den Zustand vor Beginn des Merges zurück.
VS Code als Standard-Merge-Tool konfigurieren
Sie können VS Code als Ihr Standard-Git-Merge-Tool festlegen, indem Sie die folgenden Befehle in Ihrem Terminal ausführen. Wenn Sie einen Merge in der Befehlszeile durchführen, der zu Konflikten führt, öffnet Git den Merge-Editor von VS Code, um Ihnen bei der Behebung zu helfen.
git config --global merge.tool vscode
git config --global mergetool.vscode.cmd 'code --wait $MERGED'
Um VS Code als Ihr Standard-Diff-Tool für Git zu verwenden, führen Sie Folgendes aus:
git config --global diff.tool vscode
git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'
Nächste Schritte
- Branches und Worktrees – Erfahren Sie mehr über Branch-Management und Strategien zur Minimierung von Konflikten
- Staging und Committing – Erfahren Sie mehr über das Stagen von Änderungen und das Erstellen von Commits
- Repositories und Remotes – Erfahren Sie mehr über die Arbeit mit Remote-Repositories
- Übersicht über die Quellcodeverwaltung – Entdecken Sie weitere Git-Funktionen in VS Code
- Copilot in VS Code – Entdecken Sie weitere KI-gestützte Entwicklungsfunktionen