Git is a decentralized version control system created by Linus Torvalds that is used by a number of open source projects, most notably perhaps the Linux kernel. GitHub is a new hosted Git repository service that’s being called a “social network” for programmers and with good reason. It also already has some high profile projects of its own on board: Ruby on Rails, Capistrano, Merb, Prototype and Scriptaculous, among others. “[GitHub is] the way SourceForge should have been,” gushed one beta tester.
Git decentralizes version control by giving each developer a local copy of the development history, and then changes are copied from repository to repository. Because Git makes it simple to fork and merge code, it makes the system ideally suited to collaborative development projects. But what really sets GitHub apart, is not that it uses Git, but how elegantly it pulls everything together around a set of core social networking ideas.
Though GitHub is a pay service with a business model aimed squarely at commercial development shops in need of a secure, hosted, version control system, the company also offers a generous free package that would be suitable for many open source projects.
GitHub really comes together for most users when you start talking about the social features. Every user and project has a profile (here is one for co-founder Chris Wanstrath, and here is one for the Ruby on Rails project) which tracks progress and participation. Users and projects also have public activity feeds which display activity on public projects such as commits, comments, forks, etc.
Users have the option to follow specific developers or projects to keep tabs on their activity.
Some might wonder what the point of a centralized host for a decentralized, open source product really is — i.e., is not Git meant to be installed locally? As Peter Cooper points out, “If you just want one reason why Github is relevant, its because the Web interface provides the connection BETWEEN hosted projects and the forks of them. Hosting your own Git repository is not hard […] but co-ordinating efforts of forking and merging amongst people you dont personally know is tough. With a system like Github, it becomes a lot easier.”
In other words, what makes GitHub special is the social aspects. With so many high profile projects already on board, it’s easy to imagine GitHub could be the next SourceForge.