What is a Version Control System ?

Definition, benefits and features.

ยท

2 min read

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

ย