Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

GitHub is so strongly associated with Open Source right now for a few reasons.

First, git is decentralized by default. GitHub has very little secret sauce here; most, if not all, of their cool git tricks are actually pushed upstream into the git client to benefit everybody. For remote management, I can run `git init --bare` in any directory on any ol' ssh box I want and then set it up as a remote and get the same exact `git push` experience. Or use any of the strategies that git supports for interacting with remotes.

So GitHub chose a great decentralized tool as their foundation, and then got the community UX right. There's easy permissions management, easy SSH key management and instructions, issue and PR tracking, easily-accessed discussion, etc. GitHub is 95% about community and 5% about easy repo management, IMO.

That said, they're no longer the only player in town. They're the most universally understood, but you can easily set up a GitLab CE server on your own hardware if you want the same thing for free, but there are management costs associated with that.

I think the other critical reason GitHub is associated with open source software is that, after all, it's 100% free for open source software. You get all the above features for free if you don't discriminate about who can see and clone your code. GitLab will give you free private repos, but in my opinion I think GitHub takes the better stance here for the Open Source world. "You want free tools? You have to either pay up or share."



git is decentralized, but the most common workflow makes it basically a slightly better SVN. There is always one authoritative upstream repo, and everyone just pushes to that. Really, GitHub + git is better than SVN in only two ways: better merge tools to make branches cheaper, and local branches. Almost everything else could already be done with SVN (or similar) before. git's decentralized nature is only really used by the Linux kernel developers AFAIK.


You can commit without pushing, and generally have full freedom to rearrange your repository locally. So no, lots of us make use of Git’s decentralization all the time, even without mailing patches.


> GitHub has very little secret sauce here

GitHub's secret sauce was to use dark patterns meant to accelerate the network effect working in their favor.

Specifically:

1. Quietly kill patches as the main currency in open source

2. Redefine "pull request" to mean "the thing that happens when you click a certain button on github.com"

The end result is that collaborating with GitHub-hosted projects is made arbitrarily difficult unless you're also hosting your work on GitHub.


How did they "kill patches"?


Well, when is the last time you (or anyone else) ever submitted a patch through GitHub? Answer: never. Check out the lengths the Git project itself has to go through to work around the busted GitHub-style pull request mechanism GitHub invented.


Well, that seems to me to be because they provided an alternative to patches that works a lot better for me and the projects I contribute to, and I can't blame them for it.


> That said, they're no longer the only player in town.

They never were. Before github everything was on sourceforge.


As far as I understand, Github is mainly American, meaning that US export restrictions apply, right? I'm not sure how that fits the "freedom" point.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: