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.
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.
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.
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.
Beginnen Sie im Merge-Editor mit der Lösung Ihres Konflikts durch eine der folgenden Methoden (wie im nummerierten Screenshot dargestellt).
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-
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-
Bearbeiten Sie den Code manuell im Fenster Resultat.
Wählen Sie nach der Auflösung der Mergekonflikte Merge akzeptieren aus. Wiederholen Sie diesen Vorgang für alle widersprüchlichen Dateien.
Verwenden Sie das Git Changes Fenster, um einen Zusammenführungs-Commit zu erstellen und den Konflikt zu lösen.
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.
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.