Version Control System (VCS) is a system for recording changes to a file, or set of files, that allow previous versions to be recalled at a later time. Version control systems are used to prevent file lose, or to restore earlier versions of a file if the file becomes undesirable in some way. There are three types of version control systems: local version control systems, centralized version control systems, and distributed version control systems.
Local version control systems involve copying the files into other file directories on a local computer. Local version control systems are the easiest to implement and most common version control system. Local version control systems are simple to use but are error prone because users can forget their file directories and accidentally copy or save the wrong files. Local version control systems can result in the complete loss of file data if the server becomes damaged.
Centralized version control systems involve a version control systems which operates between multiple computers at a centralized location. Centralized version control systems were developed for users to collaborate on projects using multiple computers by storing each version of the files being worked on in a central server. Centralized servers have a single point of failure (the centralized server) which can inhibit the ability of people working on files stored on the server if the server goes down, and also can result in the loss of all file information.
Distributed version control systems use a distributed server network to mirror files stored in the file repository. Distributed version control systems are the most reliable version control system because if one server on the network goes down the files are still being stored on other servers. Notable distributed version controls systems include Git, Mercurial, Bazaar, and Darcs.