Git and Github are are like philosophically opposed. Git is distributed. Who cares if a hosting server is lost? 5 minutes and you're up on a different server.
The first two can be done without github. You can also run your own publicly accessible git repository. It might not have the friendly web interface but it will do all the git stuff.
Not if youre Joe Chinese Dev wanting to collaborate with an OSS project hosted on Github. "Hey, can you guys move everything to this service that doesn't block China so I can send you push requests/issues/etc" is probably going to go nowhere.
Sure they can. You find a dev working on that project and say "Hey, can you make your git repository public so I can push some commits to you?" As far as git (not GitHub) is concerned, every local copy of the repository is just as much the "true" one as the one hosted on GitHub, and you can push commits to any of them, which will get merged in when a GitHub committer pushes to GitHub's remote.
I was doing some analytics on various crypto projects on GitHub, and was surprised by the number of them that had authors without GitHub accounts. These show up in the commit API as having 'author' and/or 'committer' as null (the commit itself has an author that's whatever you set your "git config user.name/email", which may not be a registered GitHub user). You have to handle these cases or your analytics script will crash very soon, because it's a pretty common case.
Sure, if a project insists on staying on github. But a lack of github does not mean you can't cooperate. You only miss the extra features that github adds. Which are certainly nice, but not essential to use git effectively.
They can use git. They can use mailing lists. They can use carrier pigeons to exchange pull requests. That's not what the concern is about.
If the OSS project says that all collaboration work has to happen on their Github projects, and Github's forced to block China - then Chinese devs would no longer able to collaborate.
They would need someone outside China to be willing to take their pull request/log an issue/etc.
Sure, but that's not the issue I'm addressing here. If a project insists on github no matter what, and github gets blocked, and the project keeps insisting on github, obviously that's a problem. Nobody is denying that. It's obvious.
My point is to underscore the point of the ancestor of this thread: that you (the project) don't need github. You can use all the strength of git without github.
It will be possible to create a bridge bot, between e.g. GitLab and GitHub, through their API to synchronize PRs, issues, commits, etc automatically. So this particular problem is solvable.
Git - the protocol - helps enable a distributed edit & merge ... but Git itself is not a Schelling Point. Github is a Schelling Point. (I made a previous comment about this conceptual difference.[0])
Likewise, the HTTP protocol can't be a Schelling Point but web nodes that use http like Facebook or HN can be Schelling Points.
(One can get pedantic and argue that pure protocols like git/http/tcpip can also be viewed as Schelling Points on a relative basis (compared to 1960s AT&T leased-lines) but we don't have to dissect that because the social congregation around sites like Github happens at a higher layer than the protocol.)
>Who cares if a hosting server is lost? 5 minutes and you're up on a different server.
Not only did both Google and Microsoft abandoned their own public code collaboration websites, they also both tried to acquire Github.[1] As we now know, MS had the better offer to Github's owners in 2018.
Both corporate giants had the money to run their own git-protocol compatible servers and yet they abandoned them for Github. Think about why did that.
Maybe the reasons are social, not technical? Therefore, spending 5 minutes to move a git repo to an unknown server doesn't actually accomplish the same thing Github accomplishes.
For practically every distributed or decentralized tech we have, there is a tech that complements it and at the same time negates it. The banal example is cryptocurrencies and centralized exchanges. Part of the reason is that there's just so much money to be made from centralization and monopolization, but it's surely not the whole story.
There are many other parts to this story of centralization, not all of them bad. Centralized solutions are always more efficient than decentralized ones, for both graph-theory reasons and economies of scale. They also tend to be more convenient to use for typical use cases. Centralization of trust also has utility. Then there are the nefarious reasons to centralize - control and influence.
Because, from FTFA - they're worried about Github, not git.
Huge amounts of OSS projects are hosted on Github - that's where their code is, their issues are. If you want to report issues or collaborate, you need to use Github.
The issue would also spread to other related tech, which integrates with Github.
Sure, there's ways around it, and more than likely Chinese devs would set up their own instances to work around the blocks - it would limit/reduce overall collaboration. A net-loss for everyone.
Git is not a search / discovery platform. Publish the same git repository to several platforms and you can collaborate in a distributed and decentralized way through each of those platforms.
Nothing stops you from publishing the same project to both github and gitlab.
Why would a project that's already happily working with the Github ecosystem want to also have to support publishing to a platform that doesn't block China? Lots more work on project maintainers.
Your description of what GitHub is is simplistic and reductionary. These sites are not simply about git repositories, but providing features _around_ git, e.g. CI/CD, issue tracking, wikis, project management, user permissions, contribution insights, etc. Those don't really migrate "in 5 minutes".
Distributed doesn't mean that noone makes choices.
If you want to file a PR you need access to whatever the maintainer chose. If the maintainer wants PRs via github and won't accept them via email, your alternatives are to access github, not submit the PR, or have a proxy access github for you. Possibly a human proxy.
Lots of people seem to derive value from Github, especially the social aspects and the exposure it gives to your project.
That said, I'd love a decentralised alternative based on IPFS or somesuch. There's probably something out there already, perhaps this may be impetus enough to cause devs to move? Seems unlikely.