I think sometimes people forget that one of the main features of Git is that it's decentralized. You don't need Github; just push your repo to a different remote.
Everyone that clones the repo (usually) has a full copy of it, including all history, and theoretically you can clone the repo directly from their copy. Of course, that's often not practical, which is how we ended up with these centralized services.
The main issue with losing a Github repo is the auxiliary non-Git-powered features of Github, like issue tracking.