From: jaseem abid Date: Tue, 19 Jun 2012 11:50:48 GMT Subject: Re: Editing the root commit Message-ID: In-Reply-To: <20120619091657.GA28005@arachsys.com> On Tue, Jun 19, 2012 at 2:46 PM, Chris Webb wrote: > > I've recently been polishing up some private code for release, using git > rebase --interactive to expand on some commit messages. > > In a couple of cases, I wanted to edit the root commit. (Adding a COPYING > file, for example.) I've been successfully doing this with an explicit > >  ROOT=$(git log --pretty=format:%H | tail -n 1) >  git checkout $ROOT >  git commit --amend --message='Initial import modified' # for example >  git rebase --onto HEAD $ROOT master > > However, this brought two questions to mind. > > The first is whether there's a clever symbolic way to refer to the root of > the current branch, rather than tailing git log output? gitrevisions(7) > doesn't obviously suggest one. > > The second question is whether it's possible to use git rebase > --interactive > to edit the root commit along with some subsequent ones in one fell swoop? > > My fingers half-remember doing something like > >  git checkout --orphan rewritten >  git rm -rf >  git rebase --interactive --root --onto rewritten master > > a year or so ago, but this now fails (on git 1.7.10) with the somewhat > surprising error > >  $ git rebase --root --onto rewritten master >  fatal: Needed a single revision >  Does not point to a valid commit: master > > Am I misremembering the recipe here, or has the behaviour changed? It > seems > to fail identically with or without --interactive. I was trying to do something very similar yesterday. I was cleaning up a lot of commits with a rebase -i when I figured out that I cant do that on the root commit. The man on interactive rebase says, Start it with the last commit you want to retain as-is: git rebase -i which means root cant be included. Finally I had to settle for some solution like what you mentioned. If possible Junio, can a feature be added to include root commit also to git rebase -i somehow so that a rewrite including root is easier and more straightforward ? -- Jaseem Abid http://jaseemabid.github.com