Comment by gerdesj
4 hours ago
"I think of GitHub as a collaboration tool."
Well yes but git itself is the tool at the base of the pyramid you call GitHub and co. It seems you actively want git to look like all the other things you are used to and they are all walled gardens.
GitHub takes git and basically turns it back into subversion and co. Instead of all that anarchic "no repo is king" long haired hippie nonsense, you want central control 8) I do too but only within my company, so we use gitea (other git control freak enablement platforms are available).
Why not go back to basics and start with git? Just git. Add a comms channel - it can be telephone, SMS, email, Slack, semaphore or smoke signals. Then add stuff on top of the basics and see what happens.
Quite a large project works like that already. You might have heard of Linux.
Or stick with a canned effort like GitHub (I use it for some things) and accept that you get what you are given if you abrogate your options to someone else.
Yea, I keep saying: "Git doesn't need a hub."
One of the greatest features of git is that it is not reliant on a centralized repo! Why graft centralization onto a tool that doesn't want it?
The non-git features of GitHub, like actions and CI and the issue tracker and all that stuff are fine, but I'd argue don't really belong as part of your source control system. If you need that stuff, you should be able to pick and choose the tools you want to use, rather than just live with whatever GH gives you. But they really have nothing to do with git.
Git doesn't need a hub.
But, even though the Linux the project created git specifically for their own workflow, and is in the running for the largest and most complicated decentralized software project ever known, they still operate git.kernel.org. They still have a central master repository server.
Just because git clone gets you a first class copy of the repository doesn't mean you don't need a source of truth or a centralized master to operate and coordinate the project. Control is not the totality of the benefits of centralization, and we should not confuse the structure of the tool with the best structure of a project that uses that tool.
> issue tracker
I contend that issues/tickets are as much a part of the code as comments and commit messages, and tightening the link is valuable, especially when you need to decide whether to take down an old fence. Which is a conundrum, because I agree about choosing your tools.
I absolutely agree with you that the paraphernalia around code is required but tools for the job.
git for code management
something else for discussion of that management
1 reply →
99.9% of clients are behind NAT or working on code owned by someone other than just themselves. Unless your "decentralized" repos are on two devices you control on the same private network, or you think carrying hard drives around to your friends' computers manually is a reasonable way to do it, or your decentralized version control is distributed over a centralized companies' email services, this is such a hard problem to solve
When people start thinking about what it would take for their friend to pull their repo from their home computer, they almost always decide they'd rather let Microsoft host some of their code for ~free. Actually making code accessible from a computer you own on the Internet takes way more money, time, and risk than whatever you'll pay them.
I mean how do you handle authorization and connectivity from remote clients, you go to a PGP key signing ceremony and set up a firewall and buy a static IP and/or domain and host it on a server?
Maybe instead you use some signin technology designed for centralized enterprises to manage, and a third party idp host, or a vps on someone's cloud signing access tokens? If you send it over email on a domain you don't own then you're strictly worse off, because a big company is getting all your code anyway and you made everything more annoying for no benefit. Do you also host your own email, and rotate ssh keys across all your devices, and set up linux users on your friends' servers or your various personal-use servers across the world, in the year of our lord 2026?
If you're just making code accessible as read-only files accessible over the Internet it's a little easier, you get hammered by bots and humans will probably never discover it organically unless you're a centralized company, but at least you don't have to let anybody try to authenticate. You can argue that it's still technically distributed, but not in the way people mean when talking about version control, unless you think Facebook is also distributed.
TBH I can't see how anybody who has even considered letting people use ssh keys to push code to a personally-owned/operated internet-exposed server, for anything that mattered enough to care, and say that git "doesn't want" centralization.
You have achieved enlightenment!