Re: [PATCH] rebase: add --forget to cleanup rebase, leave HEAD untouched
From: Junio C Hamano <hidden>
Date: 2016-10-26 16:51:10
Nguyễn Thái Ngọc Duy [off-list ref] 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? - 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? - 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.