Version Control System

Version Control System

Introduction to Version control system

What is the version control system?
Version control system is a software tools used to manage changes of source code over a time. It keeps track of every modification of file and if any modification in file create issue then developers can compare with previous version and can fix issues easily or roll back to previous version easily.

Why version control system?
We use version control system because of following reason:

1) Keep changes of history of every file:
Version control tools provide backup of all modifications while developing any projects or softwares, without VCS development is risky.

2) Traceability:
It is able to trace each changes in file and easy to connect with project management and bug fixing software like Jira.

Types of Version Control System

Centralized Version Control System:
In centralized version control systems, there is a single copy of the project stored on a remotely central repository. Multiple developers can commit their changes in file and can see changes in remote repositories. There is no local repository. Similarly, developers can work directly with the central repository.

Distributed Version Control System:
In distributed version control system, each developer have copy of repository and full history of the project on their own hard disk.

Version control Tools

GIT
It is version control system which helps to track every changes in computer files and coordinate multiple user/developers to work on same projects.

GIT VS GITHUB
Git is Distributed version control system where each user/developer has a full history of versions of the project in their own hard drive/local repository. But Github is hosting services which host git repository.

Why to use GIT?

  • Undo Mistakes/ Revert Back: While developing any project or software developer may change files mistakenly or the current version is failing and needs to revert back to the previous version. With using git developers can make checkpoint by committing and may revert back anytime and any checkpoints.
  • Distributed Development: In most of our projects there are multiple developers who may need to work together and parallely. One developer can work on one module where others can work on another module of the same project parallely.
  • Branching and Merging: Branching and Merging is easy in GIT. We may create a feature branch from master and work on it independently to master branch and after working on that branch we can merge it to Master. 
  • Backup: It keeps backup of projects in third party hosting websites like Github, Gitlab, Bitbucket. 

For more details, visit here.