# git rebase -i and the reflog

5 messages from 2010-02-10 to 2010-02-11. Participants: Sverre Rabbelier, Junio C Hamano, Nicolas Pitre, Patrick Sudowe.
Thread: https://gitlist.dev/t/22607

## Sverre Rabbelier, 2010-02-10 22:19

Subject: git rebase -i and the reflog
Message-ID: <fabb9a1e1002101419x40844a42s21108aaa849430c1@mail.gmail.com>
URL: https://gitlist.dev/e/fabb9a1e1002101419x40844a42s21108aaa849430c1%40mail.gmail.com

```
Heya,

I use "git rebase -i" a lot, and as a result the output from 'git log
-g' and 'git reflog' is a tad messy. That is, it's (afaik) not
possible to check that after my rebasing did not mess things up using
something like 'git diff HEAD@{1}'. I could of course tag the old head
or something, but that's not the only problem, due to the clutter it's
hard to find genuine commits. What I want is a way to see HEAD's
movement _excluding_ any rebase activity. So if I change history from
A-o-B-C to A-o-B'-C', I want to see C and C' in the reflog, but not
B', since B' is often actually identical to B, the only reason that it
changed is that I did 'git rebase -i' on some far-back commit.

Is there an existing solution to this?

-- 
Cheers,

Sverre Rabbelier

```

## Junio C Hamano, 2010-02-10 22:23

Subject: Re: git rebase -i and the reflog
Message-ID: <7v3a183f3q.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v3a183f3q.fsf%40alter.siamese.dyndns.org
In-Reply-To: <fabb9a1e1002101419x40844a42s21108aaa849430c1@mail.gmail.com>

```
Sverre Rabbelier <srabbelier@gmail.com> writes:

> I use "git rebase -i" a lot, and as a result the output from 'git log
> -g' and 'git reflog' is a tad messy. That is, it's (afaik) not
> possible to check that after my rebasing did not mess things up using
> something like 'git diff HEAD@{1}'.

Yes and no.  I too suffer from it but only when I rebase a detached HEAD
state.  If you rebased a topic, "git diff topic@{1}" (or "git diff @{1}")
would give you what you want.

```

## Sverre Rabbelier, 2010-02-10 22:26

Subject: Re: git rebase -i and the reflog
Message-ID: <fabb9a1e1002101426p41cba90dw5b3d4afdfb157b5c@mail.gmail.com>
URL: https://gitlist.dev/e/fabb9a1e1002101426p41cba90dw5b3d4afdfb157b5c%40mail.gmail.com
In-Reply-To: <7v3a183f3q.fsf@alter.siamese.dyndns.org>

```
Heya,

On Wed, Feb 10, 2010 at 23:23, Junio C Hamano <gitster@pobox.com> wrote:
> Yes and no.  I too suffer from it but only when I rebase a detached HEAD
> state.  If you rebased a topic, "git diff topic@{1}" (or "git diff @{1}")
> would give you what you want.

Ah, mhh, so the reason I'm seeing this cruft is that I'm using 'HEAD@'
instead of 'topic@'. It only makes sense that HEAD's reflog includes
every commit, and a topic's reflog includes just that topics. Thanks
for the quick reply, this'll make my life a bunch easier :).

-- 
Cheers,

Sverre Rabbelier

```

## Nicolas Pitre, 2010-02-11 03:35

Subject: Re: git rebase -i and the reflog
Message-ID: <alpine.LFD.2.00.1002102234490.1681@xanadu.home>
URL: https://gitlist.dev/e/alpine.LFD.2.00.1002102234490.1681%40xanadu.home
In-Reply-To: <fabb9a1e1002101419x40844a42s21108aaa849430c1@mail.gmail.com>

```
On Wed, 10 Feb 2010, Sverre Rabbelier wrote:

> Heya,
> 
> I use "git rebase -i" a lot, and as a result the output from 'git log
> -g' and 'git reflog' is a tad messy. That is, it's (afaik) not
> possible to check that after my rebasing did not mess things up using
> something like 'git diff HEAD@{1}'. I could of course tag the old head
> or something, but that's not the only problem, due to the clutter it's
> hard to find genuine commits. What I want is a way to see HEAD's
> movement _excluding_ any rebase activity. So if I change history from
> A-o-B-C to A-o-B'-C', I want to see C and C' in the reflog, but not
> B', since B' is often actually identical to B, the only reason that it
> changed is that I did 'git rebase -i' on some far-back commit.
> 
> Is there an existing solution to this?

What about looking at the reflog for the branch you're on instead of 
HEAD?  In the reflog space they're different.


Nicolas

```

## Patrick Sudowe, 2010-02-11 07:29

Subject: Re: git rebase -i and the reflog
Message-ID: <4B73B1BD.7030606@sudowe.net>
URL: https://gitlist.dev/e/4B73B1BD.7030606%40sudowe.net
In-Reply-To: <fabb9a1e1002101419x40844a42s21108aaa849430c1@mail.gmail.com>

```


On Wednesday 2/10 2/10  11:19 PM, Sverre Rabbelier wrote:
> Heya,
>
> I use "git rebase -i" a lot, and as a result the output from 'git log
> -g' and 'git reflog' is a tad messy. That is, it's (afaik) not
> possible to check that after my rebasing did not mess things up using
> something like 'git diff HEAD@{1}'. I could of course tag the old head
> or something, but that's not the only problem, due to the clutter it's
> hard to find genuine commits. What I want is a way to see HEAD's
> movement _excluding_ any rebase activity. So if I change history from
> A-o-B-C to A-o-B'-C', I want to see C and C' in the reflog, but not
> B', since B' is often actually identical to B, the only reason that it
> changed is that I did 'git rebase -i' on some far-back commit.
>
> Is there an existing solution to this?
>

Since nobody else mentioned it on the list.

You could also use ORIG_HEAD.
merge, rebase and am (maybe others?) record the position of HEAD to 
ORIG_HEAD before their operation.
So to check for the differences directly after one of these commands
a diff between HEAD and ORIG_HEAD should do.

I really liked the shortcut of ORIG_HEAD when I found out about it
just a couple days ago.

-Patrick

```
