Shallow clone
You can indeed get a shallow clone out of GITGit using:
git clone --depth=1 <url>
This will still clone the repo and create a .git
folder with the objects, only smaller in size (difference depending on your total file size vs. history size).
GITGit archive
You can also use git-archive to extract an archive of the repo:
Creates an archive of the specified format containing the tree structure for the named tree, and writes it out to the standard output. If is specified it is prepended to the filenames in the archive.
In the examples it shows for instance:
git archive --format=tar --prefix=git-1.4.0/ v1.4.0 | gzip >git-1.4.0.tar.gz
Create a compressed tarball for v1.4.0 release.
Hosted GITGit, archive API
If you are hosting your repo on GitHub, then you can use their archive API:
https://api.github.com/repos/<username>/<repository>/zipball/<commit_hash>
Bitbucket.org has a same functionality for this:
https://bitbucket.org/<username>/<repository>/get/<branch_name|commit_hash|tag>.zip