Thread (7 messages) flat view 7 messages, 4 authors, 2016-06-15

Re: [PATCH] rebase -i: only automatically amend commit if HEAD did not change

From: Avery Pennarun <hidden>
Date: 2016-06-15 22:44:59

On 7/22/08, Johannes Schindelin [off-list ref] wrote:
 If the user called "rebase -i", marked a commit as "edit", "rebase
 --continue" would automatically amend the commit when there were
 staged changes.

 However, this is actively wrong when the current commit is not the
 one marked with "edit".  So guard against this.
This patch is perhaps a symptom of something I've been meaning to ask
about for a while.

Why doesn't "edit" just stage the commit and not auto-commit it at
all?  That way an amend would *never* be necessary, and rebase
--continue would always do a commit -a (if there was anything left to
commit).  The special case fixed by this patch would thus not be
needed.

It would also make it more obvious how to remove files from a commit,
for example, without having to learn about "git reset".  For that
matter, you wouldn't have to learn about "git commit --amend" either,
and it would save typing.

It would also be a little more consistent with "squash", which already
lets you edit the commit message by default.

Just a thought.  Presumably it was implemented the way it is for some
reason, but I haven't seen any discussion about it.

Have fun,

Avery
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help