If only there was a protocol of some sorts that allowed you to send/receive code and patches even if the centralized hub everyone uses for synchronization was down...
https://fossil-scm.org/home SCM, bug tracker, wiki...
Bug tracking in git: https://github.com/MichaelMure/git-bug
Code review in git: https://github.com/google/git-appraise
Which you could, you know, put in git.
Git is more than just GitHub though, that much is true.
And there's always fossil ...
https://fossil-scm.org/home/doc/trunk/www/index.wiki
But it's not git. :-(
The centralization issue that you raise is a different one; most projects intend to take contributions from folks and merge them into a single product.