Introduction to Source Control#

Source or version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. It also prevents files from being altered by more than one person at a time.

Git#

Git is a distributed version control system (DVCS) with an emphasis on fast performance and nonlinear editing. Initially conceived in 2005 as a development tool for the Linux kernel codebase, it is as of 2014 one of the most widely adopted version control technologies. Git is free and open source and it has been designed to handle everything from small to very large projects with speed and efficiency.

GitHub#

Going through this 15-minutes in-browser tutorial is the quickest way of getting started with Git and GitHub. Another good option is this Hello World Guide for GitHub. This screencast by Ralf Ebert is a good all-around introduction (especially if you are already familiar with version control systems), while for a more systematic treatment see the excellent Pro Git book by Scott Chacon, available as part of the official documentation on Git’s website. The Visual Git Reference by Mark Lodato is very helpful when trying to understand some of the more advanced concepts.

Why GitHub?

Born in 2008, GitHub is now the largest open source code hosting service on the web, with more than 10 million repositories as of January 2013. It offers free hosting for open source, public git repositories as well as paid-for hosting for private ones, and an array of powerful tools for collaborative coding and social networking functionality such as feeds, followers, wikis, etc. It can be used via the web interface or standalone clients (see below).

Graphical clients for Windows and Mac

While many people interact with Git repositories through the command line interface, graphical applications are becoming increasingly popular for managing multiple local and remote repositories. GitHub has useful GUIs for interacting with repositories hosted there for Windows:

and Mac:

Alternatively, a more complex and general-purpose version control GUI is SourceTree (Windows and Mac):

Alternative Version Control System (VCSs) and hosting services#

While GitHub is the hosting service we (strongly) recommend for new users, for those with specific technical requirements Open Source Brain supports Mercurial repositories hosted on Bitbucket (see for example project:destexhe_jcns_2009) and self-hosted SVN/Git/Mercurial/Bazaar public repositories.