The GitHub Hostage Situation

Much like phones have evolved into tracking devices that happen to let you make phone calls, GitHub has, over the years, transformed from a convenient, simple hosting and sharing platform for git repositories into an invasive platform layered with social, collaborative, integration, and workflow features that also happens to host git. The octopus logo is fitting.

GitHub unfortunately has its hooks (tentacles) latched on to much of your typical development workflow. Many hosting platforms let you integrate with GitHub and deploy by merging into your master branch. There's a separation of concerns being completely ignored there. With Actions, you no longer need to worry about ensuring your test suite passes, or enforcing quality standards. Just configure some YAML files and let GitHub take care of it. With pull requests, branch protection rules, and merge requirements, it's a centralized system that uses distributed VCS under the hood. At that point, why not just use a centralized tool? They're probably easier to use anyways.

GitHub's web and mobile features can lead to complacency when it comes to even basic usage of git. Not to mention there's cool things git can do that you don't have access to in their web interface (maybe the desktop apps have it, but I don't use them). Things like git bisect for hunting down a bug or git revert for gracefully and humbly undoing changes. Blowing up a branch with git rebase -i is like a rite of passage, and hard lessons teach you discipline and encourage an understanding of what you are doing at a technical level, as opposed to the "just tell me what to type" attitude I sometimes see in others.

Lately I've just been increasingly disillusioned with it all, and have been trying to progressively reduce my side projects' GitHub usage down to what it ought to be: a freemium, batteries-included hosting service for your git repos. I run my own tests, deploy manually (for some apps), and have shaken free of the notion that every change simply must be pushed to GitHub as soon as it's made.

Maybe companies and organizations ought to lean on GitHub's bells and whistles—certainly this is the case at my day job. But I think while it does make it easier to keep developers working on actual code, it also does them a disservice—responsibility abdicated is knowledge and discipline abandoned. And GitHub is happy to pick up the slack as long as you, your money, and your repositories never, ever leave.