Beim Zusammenführen von Zweigen unter Quellcodeverwaltung tritt häufig ein Zusammenführungskonflikt mit anderen Entwicklern auf.
Ich weiß, dass wir vimdiff verwenden können, um Codeänderungen mit der Quellcodeverwaltung zu vergleichen , aber es gibt auch eine Möglichkeit, mit vimdiff Zusammenführungskonflikte zu lösen.
Persönlich interessiere ich mich mehr für Git, aber es wäre nützlich zu verstehen, ob es Plugins / Techniken für andere Tools / Systeme zur Quellcodeverwaltung gibt.
vimdiff
version-control-systems
merge
Martin York
quelle
quelle
feature rich UI
irreführend; vimdiff hat möglicherweise keine schöne Benutzeroberfläche, es ist definitiv funktionsreich. Ich finde auch vim eine viel produktivere Umgebung, als alle GUI-Editoren, die ich verwendet habe (aber ich habe es für eine lange Zeit verwendet und es war eine steile Lernkurve). Ich bin eher neugierig, ob Meld irgendetwas tut, was vim nicht tut, und es sich lohnt, es sich einmal anzuschauen.Antworten:
Normalerweise benutze ich git in der Kommandozeile.
Aber wenn es einen Zusammenführungskonflikt gibt, benutze ich Vim, um sie zu lösen (persönlich mache ich das mit dem flüchtigen Plugin). Hinweis: Flüchtig ist gut für viele Git-Manipulationen in Vim. Mein Lieblingsfeature ist der 3-Wege-Unterschied eines Zusammenführungskonflikts.
git unterstützt dies in vimdiff über git mergetool. Ich habe fugitive installiert, aber Sie können es manuell einrichten (Dank an Jay Thompson).
Manuelle Einrichtung:
Die Ausgabe unterscheidet sich geringfügig von der unten beschriebenen (ich habe dies nicht persönlich verwendet). Das Prinzip ist jedoch dasselbe, aber Sie haben unten ein viertes Fenster mit dem Ergebnis.
Mit Fugitive einrichten
vim-fugitive ist ein Git-Wrapper / Integrations-Plugin für Vim; Es kann viele Dinge bewirken, und die Lösung von Konflikten ist eine davon.
Sie können jetzt Text aus den beiden anderen Ansichten in die zentrale Ansicht ziehen und abrufen (die alle manuellen Korrekturen enthalten wird). Wenn Sie alle Konflikte manuell gelöst haben, beenden Sie einfach vimdiff
Sie können jedoch
:diffget <view number>
und verwenden:diffput <view number>
, um Dinge zwischen Ansichten zu ziehen und zu verschieben. Ich persönlich finde das nicht sehr nützlich. Der gesamte Code befindet sich bereits in der mittleren Ansicht. Daher bearbeite ich diese Ansicht einfach gerne manuell, bis der Konflikt behoben ist. Es ist jedoch äußerst nützlich, beide Versionen des Codes auf beiden Seiten meines Editorfensters anzeigen zu können.Auch eine sehr gute Demo seiner Verwendung hier
quelle
git config --global merge.tool vimdiff
und dann ausführengit mergetool
, um vim im Diff-Modus zu starten.diff3 -E
. Die obigen Bilder werden also aus Dateien generiert, in denen diese Markierungen enthalten sind.