Version Control for Beginners: The Pendrive Analogy

Published: (December 29, 2025 at 01:59 AM EST)
3 min read
Source: Dev.to

Source: Dev.to

Cover image for Version Control for Beginners: The Pendrive Analogy

Life Before Version Control

Imagine this: you are a developer in the 1990s, building software. There is a bug that you cannot fix, and you want your colleague John to help you. You already have the source code. How do you transfer the code to him?

The Pendrive Problem

Maybe by using a pendrive, hard disk, email, or CDs, you copy the code and give it to John. John copies the code into his system and starts working on it. After fixing the bug, John deletes your old code, copies the updated version to the pendrive, and gives it back to you. You copy the code from the pendrive and see that the original bug is fixed, but there is another bug in an unexpected part of the code.

Image of pendrive analogy

Why final_final_v2 Was Never Final

At this point you are confused. Is the new bug your fault or John’s? There is no way to confirm that.

Folder names turned chaotic

Both developers decide that every time a change is made, they will not delete the old code from the pendrive. Instead, they will add the new code with the name final.

Folder name problem

As the codebase grows, many confusing names appear: final_v2, latest_final, latest_final_final, latest_final_super_final, etc.

Why Teams Needed a Better System

Now you are confused again. Which is the latest code? Who changed which part? Why are there unexpected bugs?

These problems are already painful for two developers; imagine adding a third developer, Will. The chaos multiplies.

You are frustrated because you cannot track changes in your code. So you decide to build software that records every addition or rewrite, along with the author of each change. This solves the multiple‑file‑and‑folder problem: no matter how many developers are involved, everyone can work in the same folder.

That software is Git, created by Linus Torvalds.

What Is Version Control?

Version control is a system that tracks changes made to files over time, showing what changed, who changed it, and when it changed.

Using version control you can:

  • Track every change in code
  • Eliminate confusing final_final_v2 folders
  • Prevent accidental overwrites
  • Provide a full change history
  • Enable collaboration
  • Show exactly what changed
  • Identify the author of each change

The Pendrive Limitation

Even with version control, you might still be using a pendrive. The pendrive always contains the latest code, and only one developer can work at a time. Others have stale copies and cannot make changes.

Centralised Repository

To solve this, set up a central server that hosts a Git repository. The server always contains the latest version of the code. All developers pull the code from the server, make their changes, and push them back.

Overview of Git and GitHub

In this way, all developers can work simultaneously and compare their code against a single source of truth—the code on the server. This server is commonly provided by GitHub.

Back to Blog

Related posts

Read more »

Branch development with git

!Cover image for Branch development with githttps://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-up...