Re: How to create a new commit with the content of some commit?
- From
Ping Yin <pkufranky@gmail.com>
- Date
- May 12, 2009, 16:59 UTC
- Message-ID
- <46dff0320905120959sc69eec9h23cd8ac6b489e5b6@mail.gmail.com>
- In-Reply-To
- <20090512165103.GE29566@coredump.intra.peff.net>
On Wed, May 13, 2009 at 12:51 AM, Jeff King <peff@peff.net> wrote:
Show 20 quoted lines
> On Wed, May 13, 2009 at 12:43:33AM +0800, Ping Yin wrote: > >> > You can just munge the index directly, and skip the working tree >> > entirely: >> > >> > rm .git/index >> > git read-tree b >> > git commit -m 'the copy of b' >> >> In a non-conflict status, "git read-tree b" will update the index to >> full match the tree of b, so "rm .git/index" is unnecessary, right? > > For some reason, I was thinking that entries in the index that were not > in "b" would remain, but that is not actually the case. So yes, I think > you can do it without removing the index (and you are better off to do > so, since the index also contains the stat cache for your worktree, so > it is more efficient). > > You can also add "-u" as Junio suggested to update the working tree > during that step, which should be more efficient.
I don't want to touch the working directory, and -m will keep the stat cache in the index, so i think "git read-tree -m b" is the best.