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

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

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

  • устроили файлов?
  • любая ревизия git?

5 ответов


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

:Gdiff :0

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

:Gdiff [revision]

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

:Gdiff ~3

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

это моя .клавиатура vimrc файл config

  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 вернуться к моей рабочей копии.


добавление к вышеуказанному ответу:

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

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

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

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

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

h беглец-ревизия