On Tue, Mar 12, 2019 at 11:21 AM Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote: > > On Tue, 12 Mar 2019, Kevin Daudt wrote: > > ... snip ... > > > The only reason why `:q!` works just for comitting is because there > > is no default message, so the final message ends up empty. > > > > When you do things like git revert or git commit --amend, there is > > already a commit message, which you are then editing. When you quit > > without saving, the existing message remains and git uses that. > > > > vim has a command to let it exit with an error return code: `:cq`. > > This makes git something went wrong with editing the message, > > causing git to abort the commit. > > ah, i'm starting to get it. predictably, i think this needs to be > mentioned in a man page. :-) thanks muchly for clearing that up. If you do fix up some manpage, note that this affects e.g. commit --amend too as pointed out by Kevin (and maybe also the 'reword' option of git-rebase?) -- anything that starts with .git/COMMIT_MSG being non-empty.