Tags
:G :G status :G commit :G add % :Gdiff :G push :Glog
Add current file and commit with diff in a split
function! s:GitAdd() exe "G add %" exe "G diff --staged" exe "only" exe "G commit" endfunction :command! GitAdd :call s:GitAdd() nnoremap gic :GitAdd<CR>
:on[ly]
C-W o
:on[ly] will make the current buffer the only one on the screen. This is super helpful as many of fugitive commands will open in a split by default.
C-I C-O
cycle through the jumplist
This one has nothing to do with fugitive, but is a native vim feature that
makes fugitive glorious. Before I realized how to utilize C-i
and C-o
, I
would get completely lost when using fugitive. Digging deep into the log,
opening a file from a specific commit, then no way to get back where I was in
the log.
C-i jump
:jump[s]
show the jumplist
The jumplist is sorted Oldest to newest
:Telescope jumplist
When navigating the jumplist with :Telescope jumplist
, it will add a new entry
to the jumplist and let you get back to where you were with a C-O
.
:Telescope jumplist adds to the jumplist
C-W J / C-W L
:G log
:G log :G log -p :Glog
Ggrep
:Ggrep python **/*md
Unlike :vim[grep]
you don't need to specify a file glob.
:Ggrep python
Staging Hunks
In the file you want to stage hunks of run :Gdiff
. Then use vim's diff
commands (dp
, do
, :diffput
, :diffget
) to move the hunk between the
stage/index. Then write the file to stage.
:Gdiff dp :w :Gcommit