Skip to Main Content






Git Basics

Types of Version Control Systems (VCS)

Version control systems can be broadly classified into two types:

  1. Centralized Version Control Systems (CVCS):

    • Example: SVN (Subversion), CVS.
    • How It Works: In a CVCS, there is a single central server that holds all the versioned files, and clients check out files from this central place. The key characteristic is that the entire history and current versions are stored on this central server.
    • Advantages: Simple to understand, all data is in one place, easy to manage permissions.
    • Disadvantages: If the central server goes down, no one can save their changes. Performance can be slower since everything depends on the central server.
  2. Distributed Version Control Systems (DVCS):

    • Example: Git, Mercurial.
    • How It Works: In a DVCS, every contributor has a full copy of the repository, including the entire history. This means there isn’t a single point of failure, and actions like commits, branching, and merging are fast because they don’t require communication with a central server.
    • Advantages: High availability (since every user has a full copy), faster operations, better support for branching and merging.
    • Disadvantages: Can be more complex to understand at first, requires more storage since everyone has a full copy of the repository.