How can I commit files currently displayed in Vim with fugitive?

12.8k views Asked by At

I am editing files opened split into three windows. I want to commit those into the repository. Is there any commands to do that?

2

There are 2 answers

2
Peter Rincker On BEST ANSWER

There are a few ways to accomplish this task. I will outline the most interactive method which uses :Git.

  • Open up the status window via :Git
  • Move between files via <c-n>/<c-p>
  • Stage/unstage files via -
  • Start committing via cc whilst in the status window
  • Create commit message and save and close window. (I prefer :x)
  • You can also use zj and zk to move between sections
  • Using - on a section will stage/unstage all the files in that section

For more help with :Git see :h :Git or :G when in the :Git buffer.

Can use :Gwrite or :Gw and :windo to skip the :Git window to make this a bit faster.

:windo Gw
:Git commit

You can also skip the whole commit window by using the -m flag. e.g. :Git commit -m "A short message"

I recommend official repo on GitHub and Vimcasts videos on Fugitive: The Fugitive Series - a retrospective

To learn more see:

:h fugitive
:h :Git
:h :Gw
:h :Git commit
:h :windo
:h :x
0
romainl On

Without fugitive:

:windo !git add %
:!git commit -m "My message goes here"

The last command could be replaced with:

:!git commit --interactive