Git

This article lists some excellent tutorials to learn Git / Github, along with some practical advice for the same. Git is the most popular Version Control System, which is used by nearly all major software projects now. Learning git will help you pick up any version control system easily, teach you to make larger projects effectively as well as contribute to massive open source projects (as long as you have the relevant programming experience).

Contents

Two Important Clarifications

Before we begin, two important clarifications. Git is not the same as Github. Also, Git is NOT a programming language.

  • Git is not the same as Github - Git is a version control tool, which is generally distributed in systems as a command line utility or less frequently as a GUI. Git will work on your project code locally, and will help you collaborate with others. Git doesn't really store your code, it is a tool. Github on the other hand is a web service which is used to store different versions (by different people) of many projects. Github makes use of Git, and provides a GUI to compare code across it's server, merge code, review code and a lot of excellent software development tools (most of what's described in Software Development) to help you out.
  • Git is NOT a programming language - It is more like a software toolkit, which has got a few tricks and procedures that you must understand properly if you wish to use it correctly. It's easy to master the basics, and also very easy to go wrong. (Terribly wrong, deleting your month's work. We've seen it happen).

Pre-requisites?

None, quite really. It's better if you know a programming language and have a few projects though, as that will give you an excellent chance to learn the workflows by pushing real code to Github rather than test repositories. Also, several concepts will be easier to understand with real code in front of you. You must install Git, and it's recommended to have a Linux distribution. (Windows will work too, using Git Bash)

Where Should I Begin?

Unfortunately, git is complicated and it might take sometime to master. But it's really important that you do try to master it, since it's so important in today's software development. The most important thing is that you actually upload some real projects to Github. Just reading tutorials and concepts will not teach you much. Here are some good starting points -

  • [Slides] Git Introduction - A little short of examples, but should be good to get you started. Built out of our personal experience with Git.
  • Git It - An excellent series of real tasks to learn Git / Github, by the Github staff member Jessica Lord. Scroll down to view the README file.

Git References

  • Git Cheat Sheet - A huge list of git commands and tricks
  • Git Parable - A story behind the workflow of git.
  • git-scm - The official documentation of Git. A very well documented resource.