Просмотр всех `git diffs` с vimdiff - PullRequest
       49

Просмотр всех `git diffs` с vimdiff

194 голосов
/ 15 сентября 2010

Я настроил git diff для переноса в vimdiff, используя " Git Diff with Vimdiff " в качестве руководства, и он работает, как и ожидалось, если нет много файлов с изменениями.

Когда есть несколько файлов с изменениями, и я запускаю git diff, он открывает первый файл и после выхода из первого экземпляра vimdiff мне выдается следующее сообщение:

external diff died, stopping at filename

Это совершенно другое поведение, чем я привык. В прошлом у меня была похожая настройка с SVN, и, когда я сравнивал несколько файлов, я просматривал первый файл, затем записывал и выходил, используя :wq, и открывался следующий файл с различиями.

Это не относится к Git. Я попытался :n[ext], но при этом не заполняет левое окно исходным файлом, чтобы его можно было сравнить с измененной версией.

Ответы [ 3 ]

314 голосов
/ 15 сентября 2010
git config --global diff.tool vimdiff
git config --global difftool.prompt false
git config --global alias.d difftool

Ввод git d возвращает ожидаемое поведение, вводя :wq в циклах vim для перехода к следующему файлу в наборе изменений.

97 голосов
/ 15 сентября 2010

Вы можете попробовать git difftool, он предназначен для этого.

Сначала вам нужно настроить diff на vimdiff

git config diff.tool vimdiff

Затем, когда вы хотите diff, просто используйте git difftool вместо git diff.Это будет работать так, как вы ожидаете.

20 голосов
/ 09 июля 2013
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
...