mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Duy Nguyen <>
To: Junio C Hamano <>
Cc: Git Mailing List <>
Subject: Re: [PATCH] rebase: add --forget to cleanup rebase, leave HEAD untouched
Date: Thu, 27 Oct 2016 17:40:43 +0700	[thread overview]
Message-ID: <> (raw)
In-Reply-To: <>

On Wed, Oct 26, 2016 at 11:51 PM, Junio C Hamano <> wrote:
> Nguyễn Thái Ngọc Duy  <> writes:
>> There are occasions when you decide to abort an in-progress rebase and
>> move on to do something else but you forget to do "git rebase --abort"
>> first. Or the rebase has been in progress for so long you forgot about
>> it. By the time you realize that (e.g. by starting another rebase)
>> it's already too late to retrace your steps. The solution is normally
>>     rm -r .git/<some rebase dir>
>> and continue with your life. But there could be two different
>> directories for <some rebase dir> (and it obviously requires some
>> knowledge of how rebase works), and the ".git" part could be much
>> longer if you are not at top-dir, or in a linked worktree. And
>> "rm -r" is very dangerous to do in .git, a mistake in there could
>> destroy object database or other important data.
>> Provide "git rebase --forget" for this exact use case.
> Two and a half comments.
>  - The title says "leave HEAD untouched".  Are my working tree files
>    and my index also safe from this operation, or is HEAD the only
>    thing that is protected?

Everything is protected. I will rephrase the title a bit. The option
is basically a safe form of "rm -r .git/rebase-{apply,merge}".

>  - I think I saw a variant of this gotcha for an unconcluded
>    cherry-pick that was left behind, which the bash-prompt script
>    did not notice but the next "git cherry-pick" did by complaining
>    "you are in the middle" or something like that.  Perhaps we would
>    want to have a similarly sounding option to help that case, too,
>    not in this patch but as another patch on the same theme?

That would be nice. I don't put lots of git info on my shell prompt
though, so it does not help me. And it's probably difficult to report
the right thing too. Sometimes in the middle of rebase I would switch
to another branch, look or do stuff, then "git checkout -" back. I
don't think we can make the prompt script clever enough to see my

>  - Would it have helped if bash-prompt were in use?  I am not saying
>    that this patch becomes unnecessary if you use it; I am trying to
>    see if it helps its users by reminding them what state they are
>    in.

Since I don't use it because I want to keep shell prompt short and
light, it doe not help me. But it looks like does print
rebase in progress and others (only checked the code, didn't test it).

  reply	other threads:[~2016-10-27 14:27 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-26  9:46 [PATCH] rebase: add --forget to cleanup rebase, leave HEAD untouched Nguyễn Thái Ngọc Duy
2016-10-26 16:51 ` Junio C Hamano
2016-10-27 10:40   ` Duy Nguyen [this message]
2016-10-31 19:25     ` Junio C Hamano
2016-11-09  9:11 ` [PATCH v2] rebase: add --forget to cleanup rebase, leave everything else untouched Nguyễn Thái Ngọc Duy
2016-11-09 20:12   ` Junio C Hamano
2016-11-10 11:09     ` Duy Nguyen
2016-11-10 11:22       ` Duy Nguyen
2016-11-10 19:07         ` Junio C Hamano
2016-11-12  2:00   ` [PATCH v3] " Nguyễn Thái Ngọc Duy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:

  List information:

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='' \ \ \ \

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).