Subject: Re: getting started, happy with cmd line on windows [Scanned]

From: "Zorba" <[email-masked]>
Date: Fri, 26 Dec 2008 23:13:20 -0000

> I then deleted all files from the working directory, so I can pull out
> ONLY the ones in version A.
> I tried both fetch and checkout - but nothing was copied into working
> dir How do I do this ?

git treats deleted files just like edited files: as having been changed
in preparation for the next commit.  You can get back all of the tracked
files using this command:

$ git reset --hard

It undoes _all_ changes: tracked edited files will be reverted to their
in-repository state, deleted files created again.  You can also check
out individual files like this:

$ git checkout ABC.txt

If you just want to get rid of untracked files, you'd use the command
"git clean".

In general, if you switch your work tree from one revision to another
(git checkout), git tries to minimize the I/O needed.  Files that are
the same in both aren't touched.

Hi Rene,

Thanks for taking the time.

My workflow is such that I inherit projects that are hard to debug and I 
need to hack around a lot changing a lot of files to output tracking msgs 
just to learn the code's functionality (e,g, PHP on a webserver), but these 
changes I never intend to keep. After learning the code, I want to go back 
to a "last known good". I.e. a previous stable version and start making 
proper changes.

In other SCMs, there was a way to "discard" all local changes, after the 
hacking phase, without EVER having had to commit.

For a while it seemed like you were telling me I had to COMMIT my hacked 
code (against all my instincts :-), and THEN rollback ($ git reset --hard).

Now, I went back and read the manual pages for git-checkout and think I see 
how to do it....

$ <import code>
$ git init
$ git commit
$ git tag versionA <commitID>
$ hack hack hack
...
now ready to start coding, want "last known good"
$ rm *.*
$ git checkout versionA .

This worked fine when versionA had only files and no dirs - but will it work 
ok still if versionA is a proper tree ?
(more of a unix question I suppose - will "." suffice as the path ?)