it-swarm.com.de

Anzeigen aller Git-Unterschiede mit vimdiff

Ich habe arrangiert git diff in vimdiff unter Verwendung von " Git Diff with Vimdiff " als Leitfaden einbinden, und es funktioniert wie erwartet, es sei denn, es gibt viele Dateien mit Änderungen.

Wenn es mehrere Dateien mit Änderungen gibt und ich git diff, öffnet die erste Datei und nach dem Beenden der ersten Instanz von vimdiff wird die folgende Meldung angezeigt:

external diff died, stopping at filename

Dies ist ein völlig anderes Verhalten als ich es gewohnt bin. Ich hatte in der Vergangenheit ein ähnliches Setup mit SVN, und wenn ich mich von mehreren Dateien unterschiede, überprüfte ich die erste Datei, schrieb sie und beendete sie mit :wq und die nächste Datei mit Unterschieden würde sich öffnen.

Dies ist bei Git nicht der Fall. Ich habe es versucht :n[ext], aber dies füllt das linke Fenster nicht mit der Originaldatei, so dass es von der geänderten Version unterschieden werden kann.

197
chuckg
git config --global diff.tool vimdiff
git config --global difftool.Prompt false
git config --global alias.d difftool

Wenn Sie git d Eingeben, erhalten Sie das erwartete Verhalten. Geben Sie :wq In vim-Zyklen ein, um zur nächsten Datei im Changeset zu gelangen.

316
chuckg

Du kannst es versuchen git difftool, es ist dafür gedacht, dieses Zeug zu machen.

Zuerst müssen Sie das Diff-Tool auf vimdiff konfigurieren

git config diff.tool vimdiff

Wenn Sie dann differenzieren möchten, verwenden Sie einfach git difftool anstatt git diff. Es wird so funktionieren, wie Sie es erwarten.

101
czchen
Git accepts kdiff3, tkdiff, meld, xxdiff, emerge, vimdiff, gvimdiff, ecmerge,
and opendiff as valid diff tools. You can also set up a custom tool. 

git config --global diff.tool vimdiff
git config --global diff.tool kdiff3
git config --global diff.tool meld
git config --global diff.tool xxdiff
git config --global diff.tool emerge
git config --global diff.tool gvimdiff
git config --global diff.tool ecmerge
20
Nanhe Kumar