Visual Studio Code Wie löse ich Zusammenführungskonflikte mit Git?

104

Ich habe versucht, meinen Zweig mit einem anderen Zweig zusammenzuführen, und es gab einen Zusammenführungskonflikt. In Visual Studio Code (Version 1.2.1) habe ich alle Probleme behoben. Wenn ich jedoch versuche, ein Commit durchzuführen, wird immer wieder folgende Meldung angezeigt:

Sie sollten zuerst die nicht zusammengeführten Änderungen auflösen, bevor Sie Ihre Änderungen festschreiben.

Ich habe versucht, es zu googeln, aber ich kann nicht herausfinden, warum ich meine Änderungen nicht übernehmen kann. Alle Konflikte sind verschwunden.

annedroiid
quelle
1
Während das, was Sie gesagt haben, richtig ist, löst es das Problem in der Frage nicht. Ich habe ausdrücklich erklärt, dass ich bereits alle Zusammenführungskonflikte in der Frage gelöst habe.
Annedroiid

Antworten:

108

Mit VSCode können Sie die Zusammenführungskonflikte mit der folgenden Benutzeroberfläche leicht finden. Geben Sie hier die Bildbeschreibung ein

(Wenn Sie die obere Leiste nicht haben, legen Sie sie "editor.codeLens": truein den Benutzereinstellungen fest.)

Es zeigt die aktuelle Änderung an, die Sie haben, und die eingehende Änderung vom Server. Dies macht es einfach, die Konflikte zu lösen - drücken Sie einfach die Schaltflächen oben <<<< HEAD.

Wenn Sie mehrere Änderungen vorgenommen haben und alle gleichzeitig anwenden möchten, öffnen Sie die Befehlspalette (Ansicht -> Befehlspalette) und geben Sie die Zusammenführung ein. Es werden mehrere Optionen angezeigt, einschließlich Merge Conflict: Accept Incomingusw.

Sajeetharan
quelle
1
Hast du das neueste Update bekommen? Ich werde in jeder Zeile zeigen
Sajeetharan
1
Um diese Zusammenführung zu erhalten, lösen Sie Konfliktoptionen in Visual Studio-Code.
user630209
1
Wie kann man das aktivieren, eine Verknüpfung? Ich kann diese Option in meiner Konfliktdatei nicht sehen.
user630209
1
@RyeGuy Diese Optionen werden über CodeLens angezeigt, sodass Sie CodeLens aktivieren müssen (siehe code.visualstudio.com/Docs/editor/… ).
Geri Borbás
70

Nach Versuch und Irrtum stellte ich fest, dass Sie die Datei mit dem Zusammenführungskonflikt bereitstellen müssen, damit Sie die Zusammenführung festschreiben können.

annedroiid
quelle
1
Ja richtig. Jedes Commit, unabhängig davon, ob es sich um einen Zusammenführungskonflikt oder ein lokales Commit handelt, das Sie pushen möchten, muss bereitgestellt werden, bevor Sie dieses Commit pushen können.
Surendrapanday
1
git add .Wenn Sie verwirrt sind, wenn nicht alle Dateien bereitgestellt werden, überprüfen Sie, ob Sie sich im Stammverzeichnis des Projekts befinden. Ich habe irgendwann gebraucht, um das herauszufinden. Dann git add ., um alle Dateien zu inszenieren, und dann erlaubte es mirgit merge --continue
bensadiku
Nach dem Lösen des Zusammenführungskonflikts müssen Sie zuerst die in Konflikt stehende Datei SPEICHERN, bevor Sie die zusammengeführten Änderungen bereitstellen.
nclark
21

Für diejenigen, die Schwierigkeiten haben, die "Zusammenführungsschaltflächen" zu finden.

Das kleine Glühbirnen-Symbol mit Zusammenführungsoptionen wird nur angezeigt, wenn Sie genau auf die Markierung "Zusammenführungskonflikt" klicken.

<<<<<<<

Schritte (in VS Code 1.29.x):

B12Toaster
quelle
18
  1. Klicken Sie links auf die Schaltfläche "Quellcodeverwaltung".
  2. Siehe MERGE CHANGES in der Seitenleiste.
  3. Diese Dateien haben Zusammenführungskonflikte.

VS-Code> Quellcodeverwaltung> Änderungen zusammenführen (Beispiel)

Geoffrey Hale
quelle
1
Früher hatte ich die Optionen "Aktuelle Änderung akzeptieren | Eingehende Änderung akzeptieren ...", aber jetzt sind diese Optionen einfach aus der Zeile verschwunden. Haben Sie eine Idee, wie Sie diese Optionen wieder anzeigen können?
jet_choong
15

Die Fehlermeldung, die Sie erhalten, ist das Ergebnis von Git, das immer noch denkt, dass Sie die Zusammenführungskonflikte nicht gelöst haben. In der Tat haben Sie bereits, aber Sie müssen Git mitteilen, dass Sie dies getan haben, indem Sie die aufgelösten Dateien zum Index hinzufügen .

Dies hat den Nebeneffekt, dass Sie die Dateien tatsächlich nur hinzufügen könnten, ohne die Konflikte zu lösen, und Git würde immer noch denken, dass Sie dies haben. Sie sollten also sorgfältig darauf achten, dass Sie die Konflikte wirklich gelöst haben. Sie können den Build sogar ausführen und den Code testen, bevor Sie einen Commit durchführen.

Tim Biegeleisen
quelle
3

Für VS Code 1.38 oder wenn Sie keine "Glühbirne" -Taste finden konnten. Achten Sie genau auf den ausgegrauten Text über den Konflikten. Es gibt eine Liste von Aktionen, die Sie ausführen können.

Qiang Li
quelle