From: Avery Pennarun Date: Tue, 02 Feb 2010 20:27:12 GMT Subject: Re: [BUG] - "git commit --amend" commits, when exiting the editor with no changes written Message-ID: <32541b131002021227o1ec9f369w6096e85382857b8a@mail.gmail.com> In-Reply-To: <8c9a061002021214j673afbc8vfa5d941fba518648@mail.gmail.com> On Tue, Feb 2, 2010 at 3:14 PM, Jacob Helwig wrote: > On Tue, Feb 2, 2010 at 12:07, Eugene Sajine wrote: >> When git commit --amend is executed it fires up vi so i can change the >> commit message. If I have something staged, then when I'm exiting vi >> using :q (without doing/writing any changes), it still commits >> everything staged with old message. >> >> I believe it should actually abort amending and return to the state >> before the "git commit --amend" was issued. > > I don't think this is actually the right way to go.  A _very_ common > use case for "commit --amend" is to add things to the previous commit, > without changing the commit message at all.  Yes, you can avoid having > to fire up the editor at all in this case, but it's still a perfectly > valid thing to want to do. I agree and I do this all the time. However, I've also done it accidentally before I learned the "remove the commit message and save" trick. Perhaps what's really missing is more documentation of how to "unamend" if you change your mind :) I happen to know about "git reset HEAD@{1}" but it's not terribly obvious. Avery