Git is basically a version control open source tool for tracking changes / maintaining version in computer files or source code and coordinating work on those files among multiple user. It helps developer to maintain complete history of their work.
It will allow developers to –
- work simultaneously
- without overwriting each other’s change
- maintains history of every version
It is primarily used for source code management in software development. As a distributed version control system, it is aimed at speed, data integrity and support for distributed, non – linear flow. To be noted it’s a decentralized or distributed version control system.
Before we go ahead, let’s have a look on difference between centralized version control system and distributed version control system : –
- Centralized version control system uses a central server to store all files and enables team collaboration.
- As every thing goes to central server, what will happen , if it goes down ? So, major drawback of this is its single point of failure.
- Another thing is if somehow disk of central server (with no proper backup) gets corrupted , entire history of project will be lost.
Here comes the “Distributed Version Control System” in picture.
“Distributed Version Control System” clients not only check out the latest snapshot of the directory but they also fully mirror the repository. If the server goes down, then the repository from any client can be copied back to the server to restore it. Every checkout is a full backup of the repository. Git does not rely on the central server and that is why you can perform many operations when you are offline. You can commit changes, create branches, view logs, and perform other operations when you are offline. You require network connection only to publish your changes and take the latest changes.
Looks interesting, great ….. let’s start with it.