On Tue, Jan 8, 2019 at 12:47 PM Markus Wiederkehr
<[email protected]> wrote:
>
> On Tue, Jan 8, 2019 at 6:43 PM Andreas Schwab <[email protected]> wrote:
> >
> > On Jan 08 2019, Markus Wiederkehr <[email protected]> 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