git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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.

Previous: Jeff King
Message 10 of 10 in “How to create a new commit with the content of some commit?”
  1. Ping YinMay 12, 2009
  2. Ping YinMay 12, 2009
  3. Tomas CarneckyMay 12, 2009
  4. Sitaram ChamartyMay 13, 2009
  5. Junio C HamanoMay 12, 2009
  6. Ping YinMay 12, 2009
  7. Jeff KingMay 12, 2009
  8. Ping YinMay 12, 2009
  9. Jeff KingMay 12, 2009
  10. Ping YinMay 12, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.