git checkout HEAD -- my-file.txt
# ... which will update both the working copy of my-file.txt and
# its state in the index with that from HEAD.
# -- basically means: treat every argument after this point as a file name.
git checkout HEAD -- my-file.txt
git checkout c5f567 -- file1/to/restore file2/to/restore
$ git reset foo/bar.txt
$ git checkout foo/bar.txt