Distributed Version Control System: Git
What is VCS –
Before directly jumping to Git, lets understand what is VCS (Version Control System). As name states Version Control System is the “Management of changes to anything” we use in IT which can be a file, source code, documents, programs, websites etc. Lets take an example to understand it “lets say we have one source code for a web-application with 100 files and we termed it as version1, now there could be below reasons to change/amend the code:
– due to some bug reports we have to make some changes in the code.
– Some new features to get added in the existing code.
– Vulnerability fixes.
In all of the above cases we have to make changes to our existing running production code i.e version1, Is it logical to perform direct changes to the production code. The answer from anyone will be “Big No”. That is why we have version control system, we will create a new version of the existing code (version2) and will then perform changes to the existing running code. In case something goes out of the box we always have version1 to rollback. Which means VCS gives full flexibility to perform changes along with rollback security to have least impact on the business.
Majorly VCS is divided into two parts:
– Centralized VCS (SVN – with central repository and network connectivity)
– Distributed VCS (Git – the most commonly use repository system)
What is Git –
Git is a very well supported open-source distributed version control system (VCS) project. Git was originally developed by Linus Torvalds (Linux Operating System Creator) in 2005. Because of Distributed Architecture Git gives the flexibility to the developers to have a local working copy of their code (so called local repository) with full history changes.
Why Git –
1.) Branching: Branching is one of the most useful feature of Git. Branches isolated the current running production code and gives developers a great flexibility to work on a replica of master branch which you can merge as a feature on your running production code.
2.) Distributed Architecture: Git is a Distributed Version Control System which means we can have a local repository copy from central source where we can work and commit our changes locally. The main advantage of DVCS is “no requirement of network connections to central repository” while development of a product. This also makes Git free from single point of failure.
3.) Open-Source: There are multiple books, community support and blogs to understand Git more easily.
4.) Integration with CI: Git completely fits with CI tools which gives faster product life cycle with even more faster minor changes.
In our next posts we will demonstrate Git installation (Windows/Linux), Repository Setup and other useful Git operations.