Frage

I Setup git diff in vimdiff wickeln, mit „ Git Diff mit vimdiff “als Führer, und es funktioniert wie erwartet, es sei denn es viele Dateien mit Änderungen.

Wenn mehrere Dateien mit Änderungen und ich laufe git diff, öffnet es die erste Datei, und nach der ersten Instanz von vimdiff verlassen, ich bin mit der folgenden Meldung dargestellt:

external diff died, stopping at filename

Dies ist ein völlig anderes Verhalten, als ich es gewohnt bin. Ich hatte ein ähnliches Setup in der Vergangenheit mit SVN und, wenn gegen mehrere Dateien diffing, würde ich die erste Datei überprüfen, dann schreiben und mit :wq und der nächsten Datei mit Differenzen verlassen würde öffnen.

Dies ist nicht der Fall mit Git. Ich habe versucht, :n[ext], aber so ist dabei nicht das linke Fenster mit der Originaldatei zu füllen, so dass es gegen die modifizierte Version diffed werden kann.

War es hilfreich?

Lösung

git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool

Typing git d ergibt das erwartete Verhalten, Typisierung :wq in vim Zyklen zur nächsten Datei in der changeset.

Andere Tipps

Sie können git difftool versuchen, ist es entworfen, um dieses Material zu tun.

Zuerst müssen Sie Diff-Tool vimdiff

config
git config diff.tool vimdiff

Wenn Sie dann zu diff möchten, verwenden Sie nur git difftool statt git diff. Es funktioniert wie erwartet.

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top