vim-flugitive Side-by-Side-Git-Diff eignet sich hervorragend für die Anzeige von Diff von nicht bereitgestellten Dateien.
Wie kann ich vim-flugitive für git diff verwenden?
Unterschied zwischen aktueller Datei und Index
:Gdiff :0
Unterschied zwischen der aktuellen Datei und einer anderen [Revision]
:Gdiff [revision]
Der Unterschied zwischen der aktuellen Datei und der aktuellen Datei 3 wurde festgelegt:
:Gdiff ~3
Sie können :Glog
verwenden, um die Verlaufsänderungen für diese Dateien abzurufen. Sie können :cnext
oder :cprevious
verwenden, um zwischen Änderungen zu wechseln. Wenn Sie auf die Version treffen, die Sie vergleichen möchten, können Sie :Gdiff
verwenden. Sie können den vimdiff beenden, indem Sie den Puffer :q
schließen und das Protokoll mit :Gedit
beenden.
Dies ist meine .vimrc-Tastaturkonfiguration
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>
Ich empfehle das Tim Pope unimpaired.vim
Plugin zu verwenden.
Mit dieser Konfiguration ist mein Workflow:
<leader>gl
, um den Verlauf anzuzeigen
]q
und [q
, um zwischen Versionen zu wechseln (unimpaired.vim)
<leader>Gd
zum Öffnen von diff
:q
, um diff
zu beenden
<leader>ge
, um zu meiner Arbeitskopie zurückzukehren.
Hinzufügen zur obigen Antwort:
Wenn Sie ein diff einer bestimmten Datei von einem anderen Zweig erhalten möchten
Gdiff branch_name:path/to/dir/filename.txt
Die Hilfe, die Sie in der vim-Befehlszeile benötigen:
h flüchtige Revision
Ich stelle hier einfach die Art und Weise ein, wie ich einen Diff sehe, wenn :Glog --
oder :Glog -- %
(für die aktuelle Datei) verwendet wird:
:Glog --
:cw
, um eine Liste von Commits zu öffnen<c-w>gf
und der Diff wird in einem neuen Tab geöffnet:tabclose
, um die Registerkarte zu schließen und den vorherigen Status vor dem Vergleich zu erhalten