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