vim-fugitive side-by-side git diff est idéal pour voir les diff des fichiers non staged.
Comment utiliser vim-fugitive to git diff
Diff entre le fichier actuel et l'index
:Gdiff :0
Diff entre le fichier actuel et un autre [révision]
:Gdiff [revision]
Diff entre le fichier en cours et le fichier en cours 3 commits il y a:
:Gdiff ~3
Vous pouvez utiliser :Glog
pour obtenir les modifications de l'historique de ces fichiers. Vous pouvez utiliser :cnext
ou :cprevious
pour vous déplacer entre les modifications. Lorsque vous atteignez la version que vous souhaitez comparer, vous pouvez utiliser :Gdiff
. Vous pouvez quitter vimdiff en fermant le tampon :q
et quitter le journal de l'historique avec :Gedit
.
Ceci est ma configuration de clavier .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>
Je recommande d'utiliser le plugin Tim Pope unimpaired.vim
.
Avec cette configuration, mon flux de travail est le suivant:
<leader>gl
pour afficher l'historique
]q
et [q
pour passer d'une version à l'autre (unimpaired.vim)
<leader>Gd
pour ouvrir diff
:q
pour terminer diff
<leader>ge
pour revenir à ma copie de travail.
Ajoutant à la réponse ci-dessus:
Si vous voulez obtenir un diff, d'un fichier particulier d'une autre branche
Gdiff branch_name:path/to/dir/filename.txt
L’aide dont vous avez besoin depuis la ligne de commande vim:
h révision fugitive
Je laisse tomber ici la façon dont je vois un diff si le :Glog --
ou le :Glog -- %
(pour le fichier actuel) est utilisé:
:Glog --
:cw
pour ouvrir une liste de commits<c-w>gf
et le diff est ouvert dans un nouvel onglet:tabclose
pour fermer l'onglet et obtenir l'état précédent avant le diff