Git & GitHub

This page contains a number of resources that can be useful for contributors new to git and GitHub.

Git

Git is a distributed revision control system with an emphasis on speed. Git was initially designed and developed by Linus Torvalds for Linux kernel development. Every Git working directory is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Git's current software maintenance is overseen by Junio Hamano. Git is free software distributed under the terms of the GNU General Public License version 2.

—Wikipedia

You can download git here.

The web is full of good tutorials to get started with Git. If you don't know where to start, we suggest you to begin by reading the first three chapters of Git Pro book, which introduces all concepts needed to get started with git.

Don't get discouraged by git, at the beginning it may be bit painful to get your head around it, as its philosophy is a lot different from other tools you may got yourself acquainted with (read CVS or SVN). You may feel lost, but don't give up. Your effort will be soon recompensed, and once you understand the philosophy and are comfortable with the basic commands, you will likely start to appreciate its simplicity (and at that point, you may even discover that you will never want to go back to something different ;)).

I also encourage you to learn the command line commands. Knowing the commands will help you understand how git works, and will allow you to take full advantage of git. That can really bring your productivity to the next level!

Graphical git client exist, and they can be handy for checking the logs and do many other read-only operations. Here is a incomplete list of Git client that you may want to check.

  • SourceTree: Very nice and it offers quite a few features. Unfortunately, it is available only for Mac OSX.
  • GitX: Another nice and simple git client. Unfortunately, it is available only for Mac OSX.
  • GitHub:Mac: It's the GitHub git client, so it's nicely integrated with GitHub, but you won't be able to use with a git repository that is not hosted on git.
  • SmartGit: Available for Windows, Mac OSX and Linux, it is a good option. Only problem: it's not free :(

GitHub

GitHub is a web-based hosting service for software development projects that use the Git revision control system. GitHub offers both commercial plans and free accounts for open source projects. According to the Git User's Survey in 2009, GitHub is the most popular Git hosting site.

—Wikipedia

GitHub is really awesome and it's one of the best thing that happened in the Open Source Software ecosystem. The social coding experience, the slick UI, the gigantic number of features that any project can use for free (code review, issue tracking, forking, ...). If you are not on GitHub, you are really missing out on something amazing.

A continuously increasing number of project has moved to GitHub. Both Scala and the Scala IDE projects are on GitHub, and even Linux has a mirror on GitHub!