Version control systems help programmers keep track of the code they write, and also help them code in collaboration with others. They are very helpful in organising code based on different purposes, versions, in merging different pieces of code, and have
Most people are familiar with centralised version control systems such as Subversion, in which every action requires connectivity to the (Subversion) server. If the central server fails, all collaborators that depend on the server will be affected, and any data access using the central repository will stop. Distributed version control systems (DsCS) do not rely on a central repository server; rather, each user has a full copy of the repository. Whenever the main server fails, you can recover the server from the individual repository copies.
Git combines the best of the earlier DsCS used to maintain the Linux kernel. It is designed on the principles of speed, simplicity, scalability, integrity of data, nonlinear development and being fully distributed. Before learning Git, please forget everything you know about version control systems—because Git breaks all the traditional practices and workflows about version control systems that you may be familiar with. Git is modelled like a rNIX filesystem rather than a version control system. Integrity of data is implied by its design. If some files are modified or corrupted, Git itself can identify it by default. Since understanding Git's workflow and internals helps a lot, this article walks you through basic Git terminology and the initialisation steps, then moves to a hands-on workflow, which illustrates how to use it while coding. $ wget http://git-core.googlecode.com/files/git-1.7.9.tar.gz $ tar -xzvvf git-1.7.9.tar.gz $ cd git-1.7.9 $ make install
On rbuntu, a simple sudo apt-get install git-core will do the needful.