Re: git rebase: retain original head?
- From
Jacob Keller <jacob.keller@gmail.com>
- Date
- Jan 8, 2019, 21:22 UTC
- Message-ID
- <CA+P7+xq++4W32JT9WcasXn=Oj9W-U1eteFgpLZn8GVqeO0foog@mail.gmail.com>
- In-Reply-To
- <CA+h-BnvN7+ETU-vFxAGDvs0gvXUjAAhMkvTPUxoRTt2Gb4b2ow@mail.gmail.com>
On Tue, Jan 8, 2019 at 12:47 PM Markus Wiederkehr <markus.wiederkehr@gmail.com> wrote:
Show 29 quoted lines
>
> On Tue, Jan 8, 2019 at 6:43 PM Andreas Schwab <schwab@linux-m68k.org> wrote:
> >
> > On Jan 08 2019, Markus Wiederkehr <markus.wiederkehr@gmail.com> wrote:
> >
> > > Would it be possible to retain this information?
> >
> > You could use the reflog of the current branch, where it is the second
> > entry.
>
> It is not, depending on what happens in the rebase it could be any
> entry. That's why I always have to search for the right one, which is
> tedious.
>
> Example:
>
> $ git rebase -i root-tag
> ... (apply one fixup)
> $ git reflog
> 906caf1c (HEAD -> master) HEAD@{0}: rebase -i (finish): returning to
> refs/heads/master
> 4906caf1c (HEAD -> master) HEAD@{1}: rebase -i (pick): qux
> 85dab37b4 HEAD@{2}: rebase -i (pick): baz
> 7de7420d2 HEAD@{3}: rebase -i (fixup): bar
> 9bc0461c0 HEAD@{4}: rebase -i (start): checkout root-tag
> a150b73ca HEAD@{5}: commit: foo
>
> Here I have to use HEAD@{5}.
>He meant using:
$ git reflog master
which only shows changes directly to the master ref, not to HEAD. During a git rebase operations don't modify the master ref until after the rebase finishes. This, of course, assumes you're on a branch.
If so, you should even be able to use master@{1} and be safe in assuming it always refers to what the branch was before the rebase started.
Thanks, Jake