Rather than leave this open I think I’ll give an answer to my own question. Using git reflog --all is a good way to browse orphaned commits – and using the SHA1 hashes from that you can reconstruct history.
In my case though, the repository was corrupted so this didn’t help; git fsck can help you find and sometimes fix errors in the repository itself.