Как я могу просмотреть 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 -- %
(для текущего файла) используется:
:Glog --
:cw
открыть список коммитов- Перейдите к коммиту и его информация, а также затронутые файлы будут показаны
- Сосредоточиться на пути к файлу
<c-w>gf
и diff открывается в новой вкладке:tabclose
просто закрыть вкладку и получить предыдущее состояние перед разницей