Subject: Re: How to prevent empty git commit --amend

From: Michael J Gruber <[email-masked]>
Date: Tue, 13 Jan 2015 12:20:48 +0100

Ivo Anjo schrieb am 13.01.2015 um 11:22:
> Hello Daniel,
> 
> Thanks for your answer!
> 
> My issue is not with cancelling the amend commit, is that because the
> amend commit already lists changes to the files I am working on (those
> changes that already went in the commit I was ammending), I don't
> realize that I forgot to add what I changed. For instance:
> 
> $ echo "Hello" >> readme.txt
> $ git add readme.txt
> $ git commit -m "Add readme"
> 
> $ echo "World" >> readme.txt
> $ git commit --amend
> 
> now if I just save and close the editor git will say it committed
> successfully (which it did), but in reality nothing at all happened.
> 
> Of course I can check the status or some other things before/after the
> amend commit, but since end up doing this error sometimes I was hoping
> I could set up git to stop me from doing it.

"git commit --amend" is (also) the way to edit the last commit message,
and for that you need to be able to do an "empty" amend.

In your example above, git will also tell you that you have unstaged
changes to readme.txt.

If that isn't enough, you can use "-v" to display the diff in the editor
(and remove it).

Michael