Since I’m using
git a little bit more often now, this is just a little note to remind me how to do things in
git that I would usually do in
hg. Yet another
This is quite straightforward for my purposes:
git reset --hard HEAD
git reset -h gives:
usage: git reset [--mixed | --soft | --hard | --merge | --keep] [-q] [<commit>] or: git reset [-q] <commit> [--] <paths>... or: git reset --patch [<commit>] [--] [<paths>...] -q, --quiet be quiet, only report errors --mixed reset HEAD and index --soft reset only HEAD --hard reset HEAD, index and working tree --merge reset HEAD, index and working tree --keep reset HEAD but keep local changes -p, --patch select hunks interactively
To revert files use:
usage: git clean [-d] [-f] [-n] [-q] [-e <pattern>] [-x | -X] [--] <paths>... -q, --quiet do not print names of files removed -n, --dry-run dry run -f, --force force -d remove whole directories -e, --exclude <pattern> add <pattern> to ignore rules -x remove ignored files, too -X remove only ignored files
One nice feature is that you can get back to a clean working copy by doing:
git clean -f -x
Moving and Committing.
One very nice feature of
git is that you can move files around using the operating system commands, and
git tracks the moves automatically.
Untracked files still need to be added via
git add, and then
git commit --all is the closest analogy to
Although a little confusing at first, most
git commands do nothing unless you specify a particular argument. Compare this to Subversion: I can’t recall the number of times that people have made accidental commits because Subversion just blindly commits everything.