Just a note, in the Pro Git book there's a side note on using git checkout -- <file>
that says:
It’s important to understand that git checkout -- <file> is a dangerous command.
Any local changes you made to that file are gone — Git just replaced that file with
the most recently-committed version. Don’t ever use this command unless you
absolutely know that you don’t want those unsaved local changes.