Before we learn what is Git. It is important to know what a version control system is.
What is a Version Control System?
A version control system is a tool used to manage versions & changes in any software project. (Version- particular state of a project).
Example:
Let us consider a project with the folder name "Project 1" ๐
We can notice a Folder named "Project 1" with three directories "dir1 , dir2 , dir3", and each directory with its own files. And our goal is to maintain versions for this project using a version control system. What do I mean by that?
Look at the image below.
Initial stage: Only dir1 had a file called index.js. And all the other directories were empty. And this is made Version 1 by the user.
Final stage: A new file is created in the dir2 directory named app.py. And this is made Version 2.
To note: Versions can be created at any time and at any stage. It's up to the users.
So what's the benefit of creating versions?๐ค
Let's suppose Android is operating on version 9 currently. And customers face so many bugs in version 9. This is where Version Control System comes into the picture.
The developers can simply go back (rollback) to version 8 and create a new version that doesn't have any bugs.
And this is exactly what Version Control Systems do. They help us maintain a project where a new version of an app can be created or we can go back to previous versions if we feel that the current version is not satisfactory.
BENEFITS
Record/store a Change and create versions.
Rollback and management of versions.
Track changes - what changes were made in the project and who made them?
Code comparison between two versions.
Collaboration with other people.
FEATURES
Open-source.
Code Integrity:
It allows real-time collaboration. Two or more people can work on the same version and the code provided would be the same for both.Secured:
Files stored are secured. They are not deleted until the user deletes them.Flexibility:
GUI support in replacement for git commands
eg: sourcetree.
EXAMPLES OF VERSION CONTROL SYSTEM
Git, Mercurial