Bird
Raised Fist0
Gitdevops~5 mins

Distributed vs centralized version control in Git - Quick Revision & Key Differences

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is centralized version control?
Centralized version control uses a single central server to store all versions of the code. Developers check out and commit changes directly to this server.
Click to reveal answer
beginner
What is distributed version control?
Distributed version control lets each developer have a full copy of the entire code history on their own computer. Changes are shared by pushing and pulling between copies.
Click to reveal answer
intermediate
Name one advantage of distributed version control over centralized.
Distributed version control allows developers to work offline and commit changes locally before sharing, which is not possible with centralized systems.
Click to reveal answer
beginner
How does centralized version control handle collaboration?
All developers connect to the central server to get the latest code and submit their changes, so the server controls the main codebase.
Click to reveal answer
beginner
Give an example of a centralized and a distributed version control system.
Centralized example: Subversion (SVN). Distributed example: Git.
Click to reveal answer
Which version control system stores the full history on every developer's machine?
ABoth
BDistributed version control
CNeither
DCentralized version control
In centralized version control, where is the main codebase stored?
AOn a central server
BOn each developer's computer
CIn the cloud only
DOn a USB drive
Which system allows you to commit changes without internet access?
ACentralized version control
BBoth
CNeither
DDistributed version control
Which of these is an example of a centralized version control system?
ASubversion (SVN)
BMercurial
CGit
DBazaar
What is a key disadvantage of centralized version control?
ANo history saved
BHard to share code
CRequires internet to commit changes
DToo many copies of code
Explain the main differences between distributed and centralized version control systems.
Think about where the code history lives and how developers interact with it.
You got /4 concepts.
    Describe a scenario where distributed version control is more beneficial than centralized.
    Consider when internet access is limited or collaboration is flexible.
    You got /4 concepts.

      Practice

      (1/5)
      1. Which statement best describes distributed version control systems like Git?
      easy
      A. Changes are only saved on the server, not locally.
      B. Each user has a full copy of the repository including history.
      C. Users cannot work offline and must always connect to the server.
      D. There is only one central server where all files are stored.

      Solution

      1. Step 1: Understand distributed version control

        Distributed systems like Git give every user a complete copy of the repository, including all history.
      2. Step 2: Compare with centralized systems

        Centralized systems rely on one main server, unlike distributed ones where users work independently.
      3. Final Answer:

        Each user has a full copy of the repository including history. -> Option B
      4. Quick Check:

        Distributed = full local copy [OK]
      Hint: Distributed means full local copy for each user [OK]
      Common Mistakes:
      • Confusing distributed with centralized control
      • Thinking users must always connect to server
      • Believing changes are only saved on server
      2. Which of the following commands initializes a new Git repository locally?
      easy
      A. git clone https://example.com/repo.git
      B. git commit -m 'start'
      C. git push origin main
      D. git init

      Solution

      1. Step 1: Identify command to create new repo

        The command git init creates a new local Git repository.
      2. Step 2: Understand other commands

        git clone copies an existing repo; git commit saves changes; git push sends changes to remote.
      3. Final Answer:

        git init -> Option D
      4. Quick Check:

        Initialize repo = git init [OK]
      Hint: Use git init to start a new local repo [OK]
      Common Mistakes:
      • Using git clone to create a new empty repo
      • Confusing commit with init
      • Trying to push before creating repo
      3. Given a centralized version control system, what happens if the central server goes offline?
      medium
      A. Users cannot commit or update until the server is back online.
      B. Users can continue working and commit locally without issues.
      C. Users automatically get a full copy of the repo to work offline.
      D. Users can push changes to a backup server automatically.

      Solution

      1. Step 1: Understand centralized system dependency

        Centralized systems depend on the main server for commits and updates.
      2. Step 2: Effect of server downtime

        If the server is offline, users cannot commit or update until it returns.
      3. Final Answer:

        Users cannot commit or update until the server is back online. -> Option A
      4. Quick Check:

        Centralized needs server online [OK]
      Hint: Centralized needs server online to commit [OK]
      Common Mistakes:
      • Assuming offline commits are possible in centralized systems
      • Thinking users get full repo copies automatically
      • Believing backup servers sync automatically
      4. You cloned a Git repository but forgot to fetch the latest changes. Which command fixes this?
      medium
      A. git fetch origin
      B. git clone --update
      C. git push origin main
      D. git init

      Solution

      1. Step 1: Identify command to update local repo

        git fetch origin downloads latest changes from remote without merging.
      2. Step 2: Understand other commands

        git clone --update is invalid; git push sends changes; git init creates new repo.
      3. Final Answer:

        git fetch origin -> Option A
      4. Quick Check:

        Update local repo = git fetch [OK]
      Hint: Use git fetch to get latest remote changes [OK]
      Common Mistakes:
      • Using git clone again instead of fetch
      • Trying to push before fetching
      • Running git init on existing repo
      5. In a distributed version control system like Git, how can multiple users work on the same project without a central server?
      hard
      A. They cannot work without a central server in distributed systems.
      B. They use a single shared folder on a network drive.
      C. They share patches and merge changes manually between local repos.
      D. They must push all changes to a cloud server immediately.

      Solution

      1. Step 1: Understand distributed collaboration

        In distributed systems, users have full repos and can share changes as patches or pull requests.
      2. Step 2: How users share changes without central server

        They exchange patches or pull changes directly between local repositories manually or via other means.
      3. Final Answer:

        They share patches and merge changes manually between local repos. -> Option C
      4. Quick Check:

        Distributed = manual patch sharing possible [OK]
      Hint: Distributed allows manual patch sharing without central server [OK]
      Common Mistakes:
      • Thinking distributed needs central server always
      • Assuming network shared folder is standard practice
      • Believing immediate cloud push is required