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

Re: checkout from neighbour branch undeletes a path?

From
Peter Vereshagin <peter@vereshagin.org>
Date
Nov 13, 2012, 18:34 UTC
Message-ID
<20121113183400.GE6561@external.screwed.box>
In-Reply-To
<7v8va5fo7g.fsf@alter.siamese.dyndns.org>
Hello.

2012/11/13 08:43:31 -0800 Junio C Hamano <gitster@pobox.com> => To Peter Vereshagin : JCH> Peter Vereshagin <peter@vereshagin.org> writes: JCH> JCH> > Am wondering if 'checkout branch path' undeletes the files? JCH> JCH> "git checkout branch path" (by the way, "branch" does not have to be JCH> a branch name; any commit object name would do, like "git checkout JCH> HEAD^^ hello.c") is a way to check out named path(s) out of the JCH> named commit. JCH> JCH> If the commit "branch" has "path" in it, its contents are checked JCH> out to "path" in your current working tree (and the entry in the JCH> index updated to match it). JCH> JCH> If you happen to have removed "path" in your current working tree JCH> before running that command, it might look as if there is some JCH> undelete going on, but that is a wrong way to look at things. The JCH> version of "path" in the "branch" may or may not be similar to what JCH> you have removed earlier. JCH>

Hello.
I solved my problem by mean of 'git rm' instead of 'rm'.
I knew what you said here. Shortly, the difference for my case was:
 - I check out the pathdir from the commit in which the pathdir/file00 was
   already removed.
 - The current branch 'branch01' has no idea the file00 was removed. But I
   removed file00 and this is what 'branch01' assumes when I commit n ext time.

But git assumes I need 'file00' although it doesn't exist in the commit I checkout path from. It doesn't exist by itself before I checkout that path neither.

How can I know which one of the 'file00' versions is being checked out: the one that did exist in the 'branch00' (the where I checkout path from) before I removed it or the one existing in HEAD but not in the work-tree? And why this and not that?

If it is the one that exists in a current branch but was deleted from trhe work-tree [d4f7c70] than why it is being checked out not from the commit supplied as an argument to git?

If it is the one that existed [c3e78ff] before the commit I checkout path from than why it is being checked out while it doesn't exist in that commit already?

Thank you.

-- Peter Vereshagin <peter@vereshagin.org> (http://vereshagin.org) pgp: A0E26627

Previous: Junio C HamanoNext: Junio C Hamano
Message 3 of 4 in “checkout from neighbour branch undeletes a path?”
  1. Peter VereshaginNov 13, 2012
  2. Junio C HamanoNov 13, 2012
  3. Peter VereshaginNov 13, 2012
  4. Junio C HamanoNov 13, 2012

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.