Technically Speaking: GitHub



If you’re reading this post, you’re probably not a programmer. (No worries. You’re in safe hands, here.) If you are a programmer, odds are you’re plugged into GitHub right now, building the next great something. That, or you’re too busy writing an endless book of gushing sonnets about the much-loved service to read an article like this.

Twitter Bootstrap, the extensive front-end toolkit of HTML, CSS, and Javascript conventions, is hosted on GitHub.

GitHub is the world’s most popular open-source, social web-based hosting service. It uses the Git version control system to enable groups of developers to work on the same project simultaneously. To date, GitHub’s 1.7 million users have created and worked on over 2.9 million projects (or “repositories”). In addition to being used by small groups and startups, GitHub is where developers from Twitter, Facebook, jQuery and other major companies and communities share new open-source code with the public. One example is the popular Twitter Bootstrap repository, which is watched by 30,000 people on the site.

Why it’s crucial

GitHub revolves around Git, which is a version control system that enables a team of developers to work on a project at the same time. To understand why Git is so crucial, let’s compare a repository of code to a car in the shop. Perhaps one mechanic is fixing the carburetor, another the exhaust, and another wants to test out an innovative new transmission system. But no one knows how all the changes will mesh until you take it out for a spin. In Git-land, each “mechanic” can have an unlimited number of cars to test out specific changes, and also have access to all past versions of the car (and its parts) in question. This way, teams can work in tandem to understand exactly what went wrong in what version, and build something that drives like a dream.

GitHub was founded by Chris Wanstrath, Tom Preston-Werner and PJ Hyett and launched in April, 2008. The Ruby on Rails community embraced it soon after, and GitHub’s popularity among developers and technologists has grown steeply in the years since. Notably, GitHub was bootstrapped from day one, but has recently been in talks with VC firm Andreessen Horowitz to raise a significant amount of capital, with a rumored valuation of over $500 million. Individual users can purchase GitHub accounts for $7 a month. But their real source of revenue comes from its enterprise product, which enables companies to host their code behind a firewall – those accounts start at $5,000 a year. Even more promising is GitHub’s recent launch of a desktop client for Windows developers, who make up a huge portion of enterprise clients.

How it works

Much of what users do with Git revolves around three terms: repo, branch and fork. A repo (pronounced REE-po, short for repository) is any collection of code, ranging from a single page to a vast website employing many different programming languages. A branch is merely one thread or piece of that larger repository. Often, developers will “fork” a section of code – that is, create their own master copy – work on it alone, then attempt to merge their work with the greater whole. Some of the open source projects that populate GitHub experience hundreds of iterations of this process every year.

Employers will often put more value in the depth and diversity of one’s work on GitHub than in a resume.

GitHub is also social by design. Users can follow other developers, see lists of trending repos and a live feed of updates, and attend training sessions and GitHub events. It’s also easy to search through the vast number of ongoing projects by language, date, and number of followers, among many other criteria. These days, maintaining a solid GitHub profile can also be crucial for developers looking to find new job opportunities. Employers will often put more value in the depth and diversity of one’s work on GitHub than in a resume. If you’re starting a project yourself and looking to build a team of coders, it’s not a bad place to start browsing.

Check out GitHub yourself. Browse through some of the amazing public repositories, fork someone else’s code, or upload some yourself. Once you create an account there are many resources online to help get you started with Git.

Image credit: Twitter Bootstrap