Re: [BUG] - "git commit --amend" commits, when exiting the editor with no changes written

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



El 02/02/2010, a las 21:47, Eugene Sajine escribió:

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.

As has already been pointed out, an extremely common workflow for "git commit --amend" is to include additional changes that were accidentally overlooked in the initial commit, and no changes are made to the commit message.

Changing the behavior would break that perfectly reasonable, widely- practised workflow, and _that_ would be 100% not ok.

Lucky for you, you've already been provided with two means of aborting (empty commit message, and non-zero editor exit), so you might as well start getting used to them.

Wincent

--
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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]