RE: for newbs = little exercise / tutorial / warmup for windows and other non-sophisticated new Git users :-) [Scanned]
- From
Daniel Barkalow <barkalow@iabervon.org>
- Date
- Dec 31, 2008, 00:15 UTC
- Message-ID
- <alpine.LNX.1.00.0812301859100.19665@iabervon.org>
- In-Reply-To
- <BB5F02FD3789B54E8964D38D6775E718242D31@ALTMORE-SVR.altmore.local>
On Tue, 30 Dec 2008, Conor Rafferty wrote:
> I don't understand, sorry. I thought I'd already removed all files from > the local tree, in the $ rm *.* move just above the checkout
That removes them from the filesystem, but they're still in the index. And "git checkout <something> ." first gets everything that *is* in "." in <something> into the index, and then gets everything from "." in the index into the filesystem.
I suppose it is questionable as to whether it ought to copy paths that aren't in versionA from the index into the filesystem.
To see this in a bit more detail, do:
$ rm *.* $ git status (notice that the deletes are in the "won't be committed" section)
Now, "git checkout <path>" will discard any changes in the "won't be committed" section for that path. Maybe "git checkout versionA <path>" should only discard changes that are in the "won't be committed" section for filenames that match that path and are in versionA (or are *different* in versionA and not removed?), but I think it's an area where, if you're expecting any particular behavior out of that command, you're likely to be surprised in some way in some situation.
-Daniel *This .sig left intentionally blank*