vim-fugitive side-by-side git diff отлично подходит для просмотра различий неустановленных файлов.
Как я могу использовать vim-fugitive для git diff
- постановочные файлы?
- любая версия git?
vim-fugitive side-by-side git diff отлично подходит для просмотра различий неустановленных файлов.
Как я могу использовать vim-fugitive для git diff
Разница между текущим файлом и индексом
:Gdiff :0
Разница между текущим файлом и некоторыми другими [ревизиями]
:Gdiff [revision]
Разница между текущим файлом и текущим файлом 3 коммита назад:
:Gdiff ~3
:Glog --
для заполнения окна quickfix
предыдущими коммитами и просмотра коммитов. Я настоятельно рекомендую вам взглянуть на серию vimcast о беглецах: vimcasts. org/blog/2011/05/the-fugitive-series
- person Peter Rincker; 13.03.2013
:Git!
. Например, :Git! show [revision]
загрузит исправление подсветки синтаксиса для всех файлов в [revision]
. Это не так удобно, как настраиваемая модель взаимодействия :Gstatus
, но может быть удобной ссылкой при разделении.
- person Bluu; 07.11.2017
Gcommit
, я считаю, что правильная команда, которую вы хотите, это :Gvdiff ~1
, это создает вертикальное разделение, которое, как мне кажется, легче увидеть различия, а также более эффективно использовать пространство, поскольку верхняя панель все еще остается вашей. сообщение фиксации, и ваш diff представляет собой вертикальное разделение ниже этого
- person icc97; 19.07.2018
:Gcommit --verbose
или cvc
из окна :Gstatus
.
- person Peter Rincker; 19.07.2018
Вы можете использовать :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
чтобы вернуться к моей рабочей копии.
Добавление к приведенному выше ответу:
Если вы хотите получить разницу определенного файла из другой ветки
Gdiff branch_name:path/to/dir/filename.txt
Gdiff <branch>
к буферу, если тот же файл также присутствует в ‹ветви›.
- person Ain Tohvri; 04.02.2015
Я просто добавляю сюда способ просмотра различий, если используется :Glog --
или :Glog -- %
(для текущего файла):
:Glog --
:cw
чтобы открыть список коммитов<c-w>gf
и диф открывается в новой вкладке:tabclose
чтобы просто закрыть вкладку и получить предыдущее состояние перед diffgf
? Я не нашел его в fugitive
документации.
- person Eric Sun; 04.09.2019
gf
означает редактирование существующего файла под курсором в том же окне.
- person starikovs; 04.09.2019
:h fugitive
? - person romainl   schedule 12.03.2013