On Tue, Mar 4, 2014 at 3:59 PM, Michael Haggerty <[email protected]> wrote:
>> On Tue, Mar 4, 2014 at 3:28 AM, Eric Sunshine <[email protected]>
>> wrote:
>>> Is it correct to single out only "edit" for special treatment? If
>>> allowing "edit" on the command-line, then shouldn't command-line
>>> "reword" also be supported? I, for one, often need to reword a commit
>>> message (or two or three); far more frequently than I need to edit a
>>> commit.
>>>
>>> (This is a genuine question about perceived favoritism of "edit", as
>>> opposed to a request to further bloat the interface.)
>>
>> Heh I had the same thought yesterday. The same thing could be asked
>> for "git commit --fixup" to send us back to the fixed up commit so we
>> can do something about it. If we go along that line, then "git commit"
>> may be a better interface to reword older commits..
>
> I disagree. "git commit --fixup" doesn't rewrite history. It just adds
> a new commit with a special commit message that will make it easier to
> rewrite history later. I think it would be prudent to keep the
> history-rewriting functionality segregated in "git rebase", which users
> already know they have to use with care [1].
Just to be clear I didn't mean to modify --fixup behavior. It could be
--amend-old-commit or something like that. It's actually --amend that
made me want to put the UI in "git commit". But it's a bad idea
(besides what you pointed out) because after you're done, you still
need to do "git rebase --continue".
> But the next question is whether "git rebase" should have shortcuts for
> *most* of its line commands. All of the following seem to make sense:
>
> git rebase --edit COMMIT
>
> A long-form for the -e option we have been talking about.
> It is unfortunately that this spelling sounds like the
> "--edit" option on "git commit --edit" and "git merge --edit",
> so people might use it when they really mean
> "git rebase --reword COMMIT".
>
> git rebase --reword COMMIT
Sounds good.
> git rebase --fixup COMMIT
> git rebase --squash COMMIT
This is not interactive (except when merge conflicts occur), is it?
A bit off topic. I sometimes want to fix up a commit and make it stop
there for me to test it again but there is no such command, is there?
Maybe we could add support for "fixup/edit" (or "fe" for short) and
"squash/edit" ("se"). Not really familiar with the code base to do
that myself quickly though.
> git rebase --kill COMMIT
>
> Remove the commit from history, like running "git rebase
> --interactive" then deleting that line.
Yes! Done this sometimes (not so often) but a definitely nice thing to
have. I'd go with --remove or --delete though.
--
Duy
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html