git-status # we have a bunch of uncommitted changes
git-stash # stashes away changes, reverts working copy to HEAD
git-status # no uncommitted changes
... fix the bug
git-stash list # see what we have stashed away
git-stash pop # apply uncommitted changes back to working copy

The above makes simple use of the Git stash, but there is lots more you can do with it. Also remember that the stash acts like a stack which means you can store multiple stashes.

Git has this wonderful ability to look for commands in your path named git-* and let you run them as "git *" instead. For instance, I use the "Git Extras" at git://github.com/visionmedia/git-extras.git [see https://github.com/visionmedia/git-extras#readme for documentation] and since they're in my path, they just work.

I just wanted to say that when you are showing example git commands, generally you would say "git stash" rather than "git-stash".