Version-Control-System

A Version-Control-System (VCS) is a category of software tools that helps a software team manage changes to Source-Code over time. It keeps track of every modification to the code in a special kind of database. If a mistake is made, developers can turn back the clock and compare earlier versions of the code to help fix the mistake while minimizing disruption to all team members. This process is integral to modern Software-Engineering and collaborative development.

Centralized vs. Distributed

There are two main types of version control architectures. Centralized systems, such as Subversion and Perforce, use a single central server to store all versions of a project's files. In contrast, Distributed-Version-Control systems like Git and Mercurial give each developer a local copy of the entire Repository. This architecture allows for faster Branching and Merging operations and enables offline work. For more technical details, refer to the Official Git Documentation or the Atlassian VCS Guide.

Standard Operations

Common tasks in a Version-Control-System include creating a Commit to save changes and using Pull-Requests to facilitate Code-Review. Platforms like GitHub, GitLab, and Bitbucket provide hosting for these systems, often integrating with Continuous-Integration pipelines to automate testing and deployment.