How can I check out a particular version of one file in Git?
You know what commit (ie: the specific revision) the file belongs to? Then do:
git checkout <commit> <file>
The other command:
git checkout HEAD~N <file>
Is for when you want to get a version of the file from a range back (which I do for nostalgia).
HEAD~43
is just treeish, so you can use a hash or a tag. You have to separate treeish from the filename with --
, otherwise it is treated as filename. For example.
git checkout v0.45 -- filename
git checkout HEAD^ -- filename
git checkout 16bb1a4eeaa9 -- filename
HEAD~43
refers to the commit (version) of the file. Instead of that, you can use the commit hash you get from doing git log
on the file. If you just want the file, you don't need to run git reset
on it; that's only necessary if you want to forward-port the file to the current HEAD.