Usually you look at historical versions directly in your normal working tree (you can check any commit as a "detached HEAD" / "unnamed branch") or indirectly view the history using git log (especially the -p option), git blame , etc.
But if you really need to completely unzip the old version, you can use the git archive command to create a tarball specific commit 1 (tag name, branch name (you will get its feedback), or commit object identifier (i.e. SHA hash value -1) will work to indicate commit). You can easily pass the archive to tar to extract it wherever you want.
From the directory of your repository:
git archive --format=tar branch-or-tag-name-or-commit-id | (mkdir /path/to/destination && cd /path/to/destination && tar xf -)
git archive will always work for local repositories. It can also be used with non-local repositories (or local repositories not based on your current working directory) with the --remote option; not all Git hosting services can allow archiving (they may not want to waste CPU time or bandwidth).
1 Actually, you can use git archive with any tree (i.e. the Root directory or any subdirectory represented in any commit), but this is most often used with branch hints, tags and commits.
source share