Re: Editing the root commit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Jun 19, 2012 at 2:46 PM, Chris Webb <chris@xxxxxxxxxxxx> 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 <after-this-commit>

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
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]