Monatliche Archive: Juni 2016

Verwendung von vimdiff als git mergetool

Beim ersten Merge-Konflikt schlägt git zwar i.d.R. ein Mergetool vor, mit dem folgenden Befehl kann vimdiff aber bereits vorab konfiguriert werden:

git config global merge.tool vimdiff

Der Aufruf des Mergetools nach einem Merge-Konflikt (z.B.: „CONFLICT (content): Merge conflict in test.txt“) erfolgt mit:

git mergetool

Daraufhin öffnet sich vimdiff mit mehreren Fenstern (eigentlich: „Buffer“ in der Split-Ansicht), die folgende Bezeichnungen tragen:

  • LOCAL“ (kurz: „LO“): Aktueller Branch/Zweig.
  • BASE“ (kurz: „BA“): Gemeinsamer Vorgänger (Zustand vor LOCAL- bzw. REMOTE-Änderungen).
  • REMOTE“ (kurz: „RE“): Branch/Zweig der mittels „git merge“ mit LOCAL hätte zusammengefügt werden sollen.
  • MERGED“ (bzw. keine Bezeichnung, kurz: „ME“): Gewünschtes Merge-Ergebnis.

Zwischen den Fenstern kann mit „Strg + w“ bzw. „Ctrl + w“ navigiert werden, das ist grundsätzlich nicht erforderlich, da sämtliche Arbeiten in „MERGED“ ausgeführt werden können/sollen.
Die häufigsten erforderlichen Befehle sind (jeweils ohne Anführungszeichen auszuführen):

  • „]c“: Nächster Unterschied.
  • „[c“: Vorheriger Unterschied.
  • „zo“: Text einblenden.
  • „zc“: Text ausblenden.
  • „:diffupdate“: Dateien erneut auf Unterschiede überprüfen.
  • :diffget RE“ (statt „RE“ kann z.B. auch „LO“ angegeben werden): Änderung von „REMOTE“ übernehmen.

Nachdem alle Unstimmigkeiten beseitigt worden sind, können wie gewohnt mit „:wqa“ alle Fenster gespeichert und geschlossen und mit „git commit“ fortgefahren werden.

 nach oben