Как я могу просмотреть git diff для любого коммита, используя vim-fugitive?

vim-fugitive git diff отлично подходит для просмотра различий неустановленных файлов.

Как я могу использовать vim-fugitive для git diff

  • постановочные файлы?
  • какая-нибудь git-ревизия?

5 ответов

Решение

Разница между текущим файлом и индексом

:Gdiff :0

Разница между текущим файлом и некоторыми другими [ревизия]

:Gdiff [revision]

Разница между текущим файлом и текущим файлом 3 коммитов назад:

:Gdiff ~3

Вы можете использовать :Glog чтобы получить историю изменений для этих файлов. Вы можете использовать :cnext или же :cprevious перемещаться между изменениями. Когда вы нажмете на версию, которую хотите сравнить, вы можете использовать :Gdiff Вы можете выйти из vimdiff, закрыв буфер :q и выйти из журнала истории с :Gedit

Это моя конфигурация клавиатуры.vimrc

  nnoremap <leader>gs :Gstatus<CR>
  nnoremap <leader>gc :Gcommit -v -q<CR>
  nnoremap <leader>ga :Gcommit --amend<CR>
  nnoremap <leader>gt :Gcommit -v -q %<CR>
  nnoremap <leader>gd :Gdiff<CR>
  nnoremap <leader>ge :Gedit<CR>
  nnoremap <leader>gr :Gread<CR>
  nnoremap <leader>gw :Gwrite<CR><CR>
  nnoremap <leader>gl :silent! Glog<CR>
  nnoremap <leader>gp :Ggrep<Space>
  nnoremap <leader>gm :Gmove<Space>
  nnoremap <leader>gb :Git branch<Space>
  nnoremap <leader>go :Git checkout<Space>
  nnoremap <leader>gps :Dispatch! git push<CR>
  nnoremap <leader>gpl :Dispatch! git pull<CR>

Я рекомендую использовать Тим Папу unimpaired.vim плагин.

С этой конфигурацией мой рабочий процесс:

<leader>gl просматривать историю

]q а также [q перемещаться между версиями (unimpaired.vim)

<leader>gd открыть diff

:q в конец diff

<leader>ge вернуться к моей рабочей копии.

Добавление к ответу выше:

Если вы хотите получить diff определенного файла из другой ветки

Gdiff branch_name:path/to/dir/filename.txt

Я просто падаю сюда, как я смотрю дифференциал, если :Glog -- или же :Glog -- % (для текущего файла) используется:

  1. :Glog --
  2. :cw открыть список коммитов
  3. Перейдите к коммиту и его информация, а также затронутые файлы будут показаны
  4. Сосредоточиться на пути к файлу
  5. <c-w>gf и diff открывается в новой вкладке
  6. :tabclose просто закрыть вкладку и получить предыдущее состояние перед разницей

Нужная помощь из командной строки vim:

ч. беглец-ревизия

Другие вопросы по тегам