On Tue, Feb 2, 2010 at 3:27 PM, Avery Pennarun <apenwarr@xxxxxxxxx> wrote: > On Tue, Feb 2, 2010 at 3:14 PM, Jacob Helwig <jacob.helwig@xxxxxxxxx> wrote: >> On Tue, Feb 2, 2010 at 12:07, Eugene Sajine <euguess@xxxxxxxxx> 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 > Well, i understand this logic but it seems to me that the issue is a little bit deeper than that. I just realized that the "rebase -i" is doing the same thing. If you're just exiting the vi using :q without writing changes it will perform rebase! I'm 100% sure it is not OK. So, it seems that it will do that every time it has some *prepopulated* message in the editor, so it doesn't understand when changes are written and when they are not. I believe all those actions should be treated exactly the same way as the commit itself. If I'm writing/saving changes - it is good to go. If not - abort. I.e. the message can be prepopulated in the editor, but it should be the same state as when you create a new message for commit, i.e. git should not know anything about that message. Thanks, Eugene -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html