threads / discuss / 14610

RFC: git rebase -i and root commits

Subject: RFC: git rebase -i and root commits

## tl;dr

3 messages between Jul 23, 2008 and Jul 23, 2008.

replies: 2people: 3as markdown or json

Eric Raible· Jul 23, 2008, 01:58 UTC · lore
My normal workflow is to create a .gitignore in my initial commit.

When I later realize that I've forgotten something from that file I could of course just commit the changes, but I'd rather use "git rebase -i" in the normal way to make myself appear smarter than I am. Especially since this realization usually comes early on (and certainly before publishing).

But rebase can't go all the way to a root ("fatal: Needed a single revision"). The best I've found is:

1) git checkout -b temp <root commit>
2) echo '*.tmp' >> .gitignore
3) git commit --amend .gitignore
4) git rebase --onto temp <root commit> master

If there really is an asymmetry here and I haven't missed anything (a large assumption), then what's the best way to think about it?

Is there a role for a default commit (e.g. the sha1 of "") here so that 'rebase -i' can update all commits and not just the ones with parents?

Or should I just get used to it and move on?
Thanks - Eric
Stephan Beyer· Jul 23, 2008, 02:02 UTC · re: Eric Raible · lore

Re: RFC: git rebase -i and root commits

Hi,
Eric Raible wrote:
Show 9 quoted lines
> My normal workflow is to create a .gitignore in my initial commit.
> 
> When I later realize that I've forgotten something from that file
> I could of course just commit the changes, but I'd rather use "git rebase -i"
> in the normal way to make myself appear smarter than I am.
> Especially since this realization usually comes early on
> (and certainly before publishing).
> 
> But rebase can't go all the way to a root ("fatal: Needed a single revision").
I think this has been fixed recently.
Regards,
  Stephan
-- 
Stephan Beyer <s-beyer@gmx.net>, PGP 0x6EDDD207FCC5040F
Johannes Schindelin· Jul 23, 2008, 09:05 UTC · re: Stephan Beyer · lore

Re: RFC: git rebase -i and root commits

Hi,
On Wed, 23 Jul 2008, Stephan Beyer wrote:
Show 12 quoted lines
> Eric Raible wrote:
> > My normal workflow is to create a .gitignore in my initial commit.
> > 
> > When I later realize that I've forgotten something from that file
> > I could of course just commit the changes, but I'd rather use "git rebase -i"
> > in the normal way to make myself appear smarter than I am.
> > Especially since this realization usually comes early on
> > (and certainly before publishing).
> > 
> > But rebase can't go all the way to a root ("fatal: Needed a single revision").
> 
> I think this has been fixed recently.
No, it has not.

What has been fixed is that you can cherry-pick a root commit now, not rebase onto nothing.

While I am somewhat sympathetic with Eric's use case, I am not sure that we should support it with rebase -i.

Ciao, Dscho

← back to recent threads