What makes GitHub so special

What is GitHub and what is it used for?

GitHub is a website and service that we hear geeks rave about all the time, but a lot of people don't really understand what it does. Want to know what the hustle and bustle of GitHub is all about? Read on to find out.

The "Git" in GitHub

CONNECTED:Version tracking with Subversion (SVN) for beginners

To understand GitHub, you first need to have an understanding of Git. Git is an open source version control system started by Linus Trovalds - the same person who created Linux. Git is similar to other version control systems - Subversion, CVS, and Mercurial, to name a few.

So Git is a version control system, but what does that mean? When developers create something (for example an app), they make constant changes to the code and release new versions up to and after the first official (non-beta) version.

Version control systems keep these revisions barely, storing the changes in a central repository. This makes it easy for developers to collaborate as they can download a new version of the software, make changes, and upload the latest version. Any developer can see, download, and contribute these new changes.

Likewise, people who have nothing to do with the files can still be downloaded and used while developing a project. Most Linux users should be familiar with this process, as Git, Subversion, or a similar method is often used to download the files they need - especially in preparation for compiling a program from source (a common practice for Linux geeks).

Git is the version control system of choice for most developers because it has several advantages over the other systems available. It saves file changes more efficiently and ensures file integrity better. If you want to know the details, check out the Git Basics page for a full explanation of how Git works.

The "Hub" in GitHub

We found that Git is a version control system, similar to but better than the many alternatives available. What makes GitHub so special? Git is a command line tool, but the hub that everything Git related revolves around is the hub - GitHub.com - where developers save their projects and network with like-minded people.

Let's look at a few of the top reasons geeks love using GitHub and learn a few terms along the way.

Repository

A repository (usually abbreviated as “repo”) is a location that stores all of the files for a particular project. Each project has its own repo and you can access it via a unique URL.

Split repo

"Forking" is when you create a new project from another project that already exists. This is an amazing trait that greatly encourages the advancement of programs and other projects. When you find a project you want to contribute to on GitHub, you can split the repo, make the changes you want, and publish the revised project as a new repo. If the original repository that you used to create your new project is updated, you can easily add those updates to your current branch.

Pull requests

You forked a repository and made a great makeover that you want it to be recognized by the original developers - possibly even in the official repository. You can do this by creating a pull request. The authors of the original repository can see your work and then decide whether or not to include it in the official project. Whenever you make a pull request, GitHub provides a perfect medium for you and the main project maintainer to communicate.

social network

The social networking aspect of GitHub is probably the most powerful feature that allows projects to extend beyond just the other features on offer. Every user on GitHub has their own profile, which acts like a kind of résumé and shows your previous work and contributions to other projects via pull requests.

Project revisions can be discussed publicly, so a mass of experts can bring knowledge and work together to move a project forward. Typically, before the advent of GitHub, developers who want to get involved on a project need to find a way to contact the authors - likely via email - and then convince them that they are trustworthy and that their contribution is legitimate.

Change logs

When multiple people are collaborating on a project, it is difficult to keep track of revisions - who changed what, when and where are these files saved? GitHub addresses this problem by logging all changes that have been committed to the repository.

GitHub isn't just for developers

All of this speaks about how ideal GitHub is, and programmers may believe that they are the only ones who find it useful. While it's far less common, you can use GitHub for all file types. For example, if you have a team that is constantly making changes to a Word document, you can use GitHub as your version control system. This practice is not common because in most cases there are better alternatives. However, it should be observed.

Now that you know what GitHub is all about, are you ready to go? Visit GitHub.com and read the help pages after signing up.