GitHub: Social Coding and the End of the Zip File
It’s April 2008, and the way we share open-source code is... broken. We use SourceForge, which is cluttered with ads and feels like it hasn't been updated since 1999. We email zip files of our code back and forth. We struggle with the complexity of Git, the "distributed" version control system that Linus Torvalds created to manage the Linux kernel.
Then came GitHub.
Git with a Face
Git is incredibly powerful but has a user interface that only a kernel developer could love. GitHub takes that power and puts a beautiful, Ruby on Rails-powered web interface on top of it. But they didn't just build a hosting site; they built a social network for programmers.
The "Fork" and "Pull Request"
This is the real innovation. On SourceForge, if you wanted to contribute to a project, you had to ask for permission to be a "committer." On GitHub, you just click the "Fork" button. You get your own copy of the repo, you make your changes, and then you send a "Pull Request".
# Git is hard, but GitHub makes the workflow clear
git clone https://github.com/user/project.git
git checkout -b my-new-feature
# ... make changes ...
git commit -m "Added a cool new feature"
git push origin my-new-feature
# Now go to the website and click 'New Pull Request'
The pull request becomes a forum for code review. You can comment on specific lines of code, suggest changes, and see the entire history of the conversation.
The "Resume" of the Future
People are starting to say that your GitHub profile is your new resume. It shows what you’ve built, how you collaborate, and how you think. The "green squares" of the contribution graph are becoming a badge of honor.
Looking Ahead
GitHub is doing for code what Flickr did for photos and YouTube did for video. It’s making the "Open" in "Open Source" literal. If you’re not on GitHub yet, you’re missing out on the biggest conversation in the history of software development.