Git Tutorial 2 – What is GIT and Its Advantages?
GIT is a Distributed Version Control System(DVCS). The previous line will not make any sense to you if you have not gone through my previous post on Version Control System.
A Version Control System is a utility or software which helps us to track and manage changes to a file system or code repo for better collaboration among developers to develop an application. It can keep the history of changes into a file including who has changed and what was changed. In Distributed Version Control System, files are mirrored with full version history to other systems. Git is a distributed version control system in which repositories are cloned to the developer’s system.
GIT is free and open-source software. It is designed to handle everything from small to very large projects with speed and efficiency.
Did you know that I have started a YouTube channel as well and I need your support to make it successful. Please do watch content then comment, like, share, and obviously subscribe.
Advantages of GIT
There are other VCS as well like Subversion, CVS, perforce, etc but GIT outclasses them with features like cheap local branching, convenient staging areas, and multiple workflows. Let’s see some of the advantages of GIT. If you have no prior ideas of GIT then you may not understand many points below but I will try my best to put them in simple words.
Branching and Merging
You are developing a feature ‘A’ i.e adding and modifying lines of codes. You get an important bug fix to do or a new feature ‘B’ to be developed urgently. You don’t need the codes of Feature ‘A’ as of now. Either you can remove all the changes of Feature ‘A’ from the code repo or you can create a new local branch from the stable version of the code repo. Obviously, the second option is better and that is provided by GIT. You can create as many branches as per requirement based on bug fixes, feature requests, experiments, etc.
Create a branch to try out an idea, commit a few times, switch back to where you branched from, apply a patch, switch back to where you are experimenting, and merge it in. You can have a branch with stable functionalities which is deployed to production.
Small and Fast
Most of the operations of GIT are performed locally (on the developer’s system) which makes it faster. Git was built to work on the Linux kernel, meaning that it has had to effectively handle large repositories from day one. Git is written in C, reducing the overhead of runtimes associated with higher-level languages. Speed and performance have been a primary design goal of Git from the start. You can see how much GIT is faster here.
GIT is a distributed system i.e. you can always clone the entire repository with the entire history in the user’s system. It allows multiple backups of the repository and supports different workflows.
GIT provides cryptographic integrity of every bit of your project. Every file and commit is checksummed and retrieved by its checksum when checked back out. It’s impossible to get anything out of Git other than the exact bits you put in.
As per Wiki, A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. A cryptographic checksum is used to verify that digital information has not been altered.
You must have heard about a staging environment where application codes are reviewed and tested before releasing or deploying to production. Git has a “staging area” or “index” which is an intermediate area where commits can be formatted and reviewed before completing the commit. GIT allows you to quickly stage some of your files and commit them without committing all of the other modified files in your working directory.
Free and Open Source
GIT is a free and open-source tool. GIT is release under the GNU General Public License version 2.0 which is an open-source license.
You can subscribe to my YouTube channel RetargetCommon to learn from video tutorials.
If you have any doubt, feel free to comment below.
If you like my posts, please like, comment, share and subscribe.
Find all Selenium related posts here, all API manual and automation related posts here, and find frequently asked Java Programs here.