Types of version controls
Local version controls(VCS’s) - Programmers developed a local version control system that was based on a simple database that kept track of all the changes in the files.
RCS works based on keeping track of the differences between files in form of a patch set.
The other thing was that there was no work collaboration.
Centralized version controls (CVSS’s) - These systems have a single server that contains all the versioned files, and several users that check out files from that central place.
However, this setup had its own flaws. The most obvious is due to the single centralized server, which is the main area where an error can occur. If that server goes down due to any reasons, then during that particular time no one would be able to collaborate in the work or save versioned changes to the files/ repository they’re working on.
Whenever you have the entire history of the project in a single place, there is a high risk of losing everything in a few moments.
Distributed version controls (DVCS’s) - In a DVCS (such as Git), user don’t just check the files, but the repository, along with its full history.
Thus, if any server deteriorates due to these distributed systems where files are stored at different places, any of the client repositories can be copied back up to the server to restore it. So there is a full backup of every data.