Auflösen von Mergekonflikten in Visual Studio
Gilt für:Visual Studio
Visual Studio für Mac
Visual Studio Code
Wenn Sie einen Branch in einen anderen zusammenführen, können Dateiänderungen von Commits in einem Branch mit den Änderungen in der anderen Verzweigung 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 sollen, hält Git die Zusammenführung an und teilt Ihnen mit, welche Dateien in Konflikt stehen.
Grundlegendes zu Mergekonflikten
Die folgende Abbildung zeigt ein einfaches Beispiel für den Konflikt von Änderungen in Git. In diesem Beispiel führen der Mainbranch und der Bugfixbranch-Branch Aktualisierungen an den gleichen Quellcodezeilen durch.
Wenn Sie versuchen, den Bugfix-Branch in main zusammenzuführen, kann Git nicht ermitteln, welche Änderungen in der zusammengeführten Version verwendet werden sollen. Möglicherweise möchten Sie die Änderungen im Mainbranch, im Bugfixbranch oder in einer Kombination aus beiden beibehalten. Beheben Sie diesen Konflikt mit einem Mergecommit im Mainbranch, der die in Konflikt stehenden Änderungen zwischen den beiden Branches abgleicht.
Das häufigste Mergekonfliktszenario tritt auf, wenn Sie Updates von einem Remotebranch in Ihren lokalen Branch pullen (z. B. von origin/bugfix in Ihren lokalen Bugfix-Branch). Sie können diese Konflikte auf die gleiche Weise lösen: Erstellen Sie einen Commit für Ihren lokalen Branch, um die Änderungen abzugleichen, und schließen Sie dann die Zusammenführung ab.
Verhindern von Mergekonflikten
Git ist in den meisten Fällen gut darin, Dateiänderungen automatisch zusammenzuführen, solange sich der Dateiinhalt zwischen Commits nicht erheblich ändert. Wenn Ihr Branch weit hinter Ihrem Hauptbranch liegt, sollten Sie erwägen, Ihre Verzweigungen neu zu erstellen, bevor Sie einen Pull Request öffnen. Rebased Branches werden ohne Konflikte in Ihren Mainbranch zusammengeführt.
Lösen von Mergekonflikten
Wenn Sie mit anderen Personen in demselben Branch zusammenarbeiten, werden möglicherweise Mergekonflikte angezeigt, wenn Sie Ihre Änderungen pushen.
Visual Studio erkennt, ob sich der lokale Branch, an dem Sie gearbeitet haben, hinter dem Remotenachverfolgungsbranch befindet, und bietet Ihnen dann Optionen zur Auswahl.
Hinweis
Wenn Ihr Remoterepository Push erzwingen unterstützt, können Sie es mithilfe vonGit-Einstellungen> aktivieren.
Wählen Sie in diesem Beispiel Pull und dann Push aus, um änderungen einzuschließen, die in das Remoterepository eingeführt wurden. Wenn beim Pullen von Änderungen oder beim Versuch, zwei Branches zusammenzuführen, Mergekonflikte auftreten, informiert Sie Visual Studio im Git Changes-Fenster , im Git-Repositoryfenster und bei dateien, die Konflikte aufweisen.
Das Git Changes-Fenster zeigt eine Liste der Dateien mit Konflikten unter Unvermerged Changes an. Doppelklicken Sie auf eine Datei, um mit dem Lösen von Konflikten zu beginnen. Wenn Sie eine Datei mit Konflikten im Editor geöffnet haben, können Sie Merge-Editor öffnen auswählen.
Beginnen Sie im Merge-Editor mit der Lösung Ihres Konflikts, indem Sie eine der folgenden Methoden verwenden (wie im nummerierten Screenshot dargestellt):
- Gehen Sie Zeilen für Zeile über Ihre Konflikte, und wählen Sie die rechte oder linke Seite, indem Sie die Kontrollkästchen aktivieren.
- Behalten Oder ignorieren Sie alle Ihre in Konflikt stehenden Änderungen.
- Bearbeiten Sie Ihren Code manuell im Ergebnisfenster .
Wenn Sie mit dem Auflösen der Mergekonflikte fertig sind, wählen Sie Merge akzeptieren aus. Wiederholen Sie diesen Vorgang für alle in Konflikt stehenden Dateien.
Verwenden Sie das Git Changes-Fenster , um einen Mergecommit zu erstellen und den Konflikt zu beheben.
Hinweis
Wenn Sie alle Ihre Änderungen an einer Datei beibehalten müssen, können Sie im Abschnitt Unvermergte Änderungen mit der rechten Maustaste darauf klicken und auf Aktuell (lokal) beibehalten klicken, ohne den Merge-Editor öffnen zu müssen.
Tipp
Weitere Informationen zu den verfügbaren Barrierefreiheitsoptionen finden Sie im Abschnitt Git-Tastenkombinationen der Seite Tipps und Tricks für die Barrierefreiheit für Visual Studio .
Nächste Schritte
Weitere Informationen zum Lösen von Konflikten finden Sie auf der Git-Webseite für den Mergebefehl.