Using the :Git command, you can run any arbitrary git command from inside Vim. I prefer to switch to the shell for anything that generates a log of output, such as git log for example. But commands that generate little or no output are fair game for running from inside Vim (:Git checkout -b experimental for example).
At Vim’s command line, the % symbol has a special meaning: it expands to the full path of the current file. You can use this to run any git command that expects a filepath as an argument, making the command act on the current file. But fugitive also provides a few convenience methods, some of which are summarized in this table:
| git | fugitive | action | 
|---|---|---|
| :Git add % | :Gwrite | Stage the current file to the index | 
| :Git checkout % | :Gread | Revert current file to last checked in version | 
| :Git rm % | :Gremove | Delete the current file and the corresponding Vim buffer | 
| :Git mv % | :Gmove | Rename the current file and the corresponding Vim buffer | 
The :Gcommit command opens up a commit window in a split window. One advantage to using this, rather than running git commit in the shell, is that you can use Vim’s keyword autocompletion when composing your commit message.
The :Gblame command opens a vertically split window containing annotations for each line of the file: the last commit reference, with author and timestamp. The split windows are bound, so that when you scroll one, the other window will follow.
 
  