Home » Business Automation Glossary » Version Control
Version Control

What is Version Control?

Version control, also known as source or revision control, is a system that records changes to files or sets of files over time, allowing you to recall specific versions later. It’s especially useful in software development, where multiple people might be working on the same project.

What are the three types of version control?

  1. Local Version Control System (LVCS): This is the most basic type, where the version control database is kept on the local machine. It’s essentially a database on your local disk that stores all the changes to files.
  2. Centralized Version Control System (CVCS): With CVCS, there’s a single central repository, and developers get their own working copies. Changes are then pushed to this central place. Examples include Subversion (SVN) and Perforce.
  3. Distributed Version Control System (DVCS): In DVCS, every contributor has a local copy or “clone” of the main repository. They can make changes locally and then push these changes to the main repository. Git and Mercurial are examples of DVCS.

Why is version control?

Version control is essential for several reasons:

  • Collaboration: It allows multiple developers to work on a single project without interfering with each other’s work.
  • History: Developers can look back and see who made what changes, when, and why.
  • Backup: Every change is saved, so there’s a backup of every stage of the project.
  • Branching and Merging: Developers can branch off the main project to work on features or fixes and then merge them back in.
  • Reverting: If a mistake is made or a bug is introduced, developers can revert to a previous, stable version.

Is GitHub a version control system?

No, GitHub is not a version control system. GitHub is a platform or service that hosts Git repositories. Git is the version control system that allows users to track changes, branch, and merge, among other features. GitHub provides a cloud-based interface for managing and collaborating on Git repositories.