You can read commentary and speculation everywhere online about what GitHub will do with the cash, whether this was an honest investment for Andreessen Horowitz and whether taking such an outsized investment may be a good thing for GitHub.
You’ll have heard that GitHub may be a code-sharing and publishing service, or that it’s a social networking site for programmers.
At the guts of GitHub is Git, an open-source project started by Linux creator Linus Torvalds. Although it’s mostly used for code, McCullough says Git may well be wont to manage the other form of files, like Word documents or moving picture projects. Consider it as a file system for each draft of a document.
Some of Git’s predecessors, like CVS and Subversion, have a central “repository” of all the files related to a project. McCullough explains that when a developer makes changes, those changes are made on to the central repository. With distributed version control systems like Git, if you would like to form a change to a project you copy the full repository to your own system. you create your changes on your local copy, then you “check in” the changes to the central server. McCullough says this encourages the sharing of more granular changes since you don’t need to connect with the server on every occasion you create a change.
While Git could be a command-line tool, GitHub provides a Web-based graphical interface. It also provides access control and a number of other collaboration features, like wikis and basic task management tools for each project.
This permits you to require a project that you just don’t have write access to and modify it under your own account. If you create changes you’d wish to share, you’ll send a notification called a “pull request” to the initial owner. That user can then, with a click of a button, merge the changes found in your repo with the first repo.
Gregg Pollack of Code School (which just launched a category called TryGit) explains that before GitHub if you wanted to contribute to an open-source project you had to manually download the project’s ASCII text file, make your changes locally, create a listing of changes called a “patch” and so e-mail the patch to the project’s maintainer. The maintainer would then need to evaluate this patch, possibly sent by a complete stranger, and choose whether to merge the changes.
This is where the network effect starts to play a task in GitHub, Pollack explains. once you submit a pull request, the project’s maintainer can see your profile, which incorporates all of your contributions on GitHub. If your patch is accepted, you get credit on the first site, and it shows up in your profile. It’s sort of a resume that helps the maintainer determine your reputation. The more people and projects on GitHub, the higher the idea picture a project maintainer can get of potential contributors. Patches may be publicly discussed.
Atlassian acquired a competitor called BitBucket in 2010. And earlier this year Atlassian launched Stash, a product that permits you to host private, on-premise Git repositories with BitBucket/GitHub-style collaboration features. The corporate also sells developer collaboration tools just like the bug tracker Jira and also the wiki Confluence. For instance, Schlueter says GitHub’s issue tracking feature could eventually compete with JIRA for a few projects.
The money could also be in camera and on-premise hosting, but the love is within the public repositories. Perhaps most significantly, GitHub has become the Library of Alexandria for code examples. Since Git encourages the granular recording of changes, programmers, be they absolute beginners or experts, can trace the steps of a number of the best developers within the world and understand how they solved thorny problems. But if GitHub were ever to fulfill the identical fate because of the Library of Alexandria, it may well be reconstructed from all those local forks distributed on such a big amount of developers’ laptops everywhere around the globe. Irrespective of how this investment works out, that’s a hell of a legacy for the GitHub team to depart behind.