vim-fugitive side-by-side git diff is geweldig voor het bekijken van diff van niet-gefaseerde bestanden.
Hoe kan ik vim-fugitive gebruiken om diff te git
- gefaseerde bestanden?
- elke git-revisie?
Antwoord 1, autoriteit 100%
Verschil tussen huidig bestand en de index
:Gdiff :0
Verschil tussen huidig bestand en een andere [revisie]
:Gdiff [revision]
Verschil tussen huidig bestand en huidig bestand 3 commits geleden:
:Gdiff ~3
Antwoord 2, autoriteit 51%
U kunt :Glog
gebruiken om de geschiedeniswijzigingen voor het huidige bestand op te halen. U kunt :cnext
of :cprevious
gebruiken om tussen wijzigingen te schakelen. Als je de versie hebt gevonden die je wilt vergelijken, kun je :Gdiff
gebruiken. U kunt vimdiff afsluiten door de buffer :q
te sluiten en het geschiedenislogboek te verlaten met :Gedit
.
Dit is mijn .vimrc-toetsenbordconfiguratie:
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>
Ik raad de plug-in unimpaired.vim
van Tim Pope aan.
Met die configuratie is mijn workflow:
<Leader>gl
om de geschiedenis te bekijken
]q
en [q
om tussen versies te schakelen (unimpaired.vim)
<Leader>gd
om diff
te openen
:q
om diff
te beëindigen
<Leader>ge
om terug te keren naar mijn werkkopie.
Antwoord 3, autoriteit 19%
Toevoegen aan bovenstaand antwoord:
Als je een diff wilt van een bepaald bestand van een andere branch
Gdiff branch_name:path/to/dir/filename.txt
Antwoord 4, autoriteit 3%
Ik plaats hier gewoon de manier waarop ik een diff bekijk als de :Glog --
of :Glog -- %
(voor huidig bestand) wordt gebruikt:
:Glog --
:cw
om een lijst met commits te openen- Navigeer naar een vastlegging en de informatie en de getroffen bestanden worden getoond
- Focus op een bestandspad
<c-w>gf
en de diff wordt geopend in een nieuw tabblad:tabclose
om het tabblad gewoon te sluiten en de vorige status vóór het verschil te krijgen