What is a VCS?
A version control system or VCS, also know as revision control or source control system, is a software utility that tracks and manages changes to a filesystem. A VCS also offers collaborative utilities to share and integrate these filesystem changes to other VCS users. When operating at the filesystem level, a VCS will track the addition, deletion, and modification actions applied to files and directories. A repository is a VCS term which describes when VCS is tracking a filesystem. In the scope of individual source code files, a VCS will track additions, deletions, modifications of the lines of text within that file.
VCS is an invaluable tool with many benefits to a collaborative software team workflow. Any software project that has more than one developer maintaining source code files should absolutely use a VCS. Additionally, sole-maintainer projects will also greatly benefit from utilizing a VCS. There is arguably no valid reason to forgo the use of a VCS in any modern software development project.
Why to use it?
With a VCS, everybody on the team is able to work absolutely freely — on any file at any time. The VCS will later allow you to merge all the changes into a common version. There’s no question where the latest version of a file or the whole project is. It’s in a common, central place: your version control system.
Rollback and undo changes to source code
Once a VCS has begun tracking a source code file system, it keeps a history of changes and the state of the source code throughout a project’s history. This enables the possibility to “undo” or rollback a source code project to a last well-known state. If a bug is discovered in a live application, the code can be quickly reverted to a known stable version.
Understanding What Happened
Every time you save a new version of your project, your VCS requires you to provide a short description of what was changed. Additionally (if it’s a code / text file), you can see what exactly was changed in the file’s content. This helps you understand how your project evolved between versions.