Vimdiff между текущей и предыдущей версией файла git файла
Есть ли способ использовать vimdiff для сравнения текущей версии файла и того же файла n git версии назад?
Например, я работаю над файлом foo.c на ветке мастер. Я хотел бы сделать vimdiff между foo.c и foo.c от master ~ 10, чтобы скопировать одну или две строки по сравнению со старой версией.
PS Я знаю git вишневый выбор, но для целых файлов, а не только для нескольких строк.
Ответы
Ответ 1
Duh! RTFM. Я добавил PPS об этом, не являющемся прецедентом для git difftool, затем начал задаваться вопросом, что именно делает git diffftool do... ".
Решение:
git difftool master master~10 -- foo.c
То есть, предположим, что diffftool уже настроен правильно в ~/.gitconfig:
[diff]
tool = vimdiff
[difftool]
prompt = false
Ответ 2
Для работы с Git под Vim, fugitive.vim - A Git обертка настолько потрясающая, она должна быть незаконной. очень полезно. Проверьте это!
vimdiff можно сделать с помощью :Gdiff [revision]
.
Ответ 3
Возможный дубликат просмотра всех 'git diffs' с помощью vimdiff
Ответ 4
Решение, которое работает без переопределения конфигурации git, будет
vimdiff file.tex <( git show master~2:file.tex )