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