It’s pretty easy:

git bundle create /tmp/myproject.bundle —all

This will bring all tags, branches, and heads along for the ride in a single file that can be archived without worry. To restore it, you simply clone from it:

git clone /tmp/myproject.bundle

That’s it! It should be possible to create incremental bundles as well, but I didn’t need that.