# Why Version Control Exists: The Pendrive Problem

Before the tools like Git , the developers are facing a lot of problem when their projects became so big and their code base also increases day by day , They face a problem also called pen-drive problem means developers are saving their code in folder and they use pen-drives for the single source of truth for tracking and collaboration of there code bases.

**To understand the why version control exists , we need to understand what problems does developers are facing :**

## 1\. The Single Developer Problem :-

Imagine you are single developer working in your project locally in your own machine and your project folder looks like this :-

```plaintext
project/
```

As the time passes if you will create the new versions of your project , add the new features and fixes the bugs and you’ll start create copies of your own project to stay safe and structured to remember what you do in the past but This makes your project maintainance more cluttered like this :-

```plaintext
project_v1
project_v2
project_final
project_final_final
project_final_final_fix
```

At this stage You are thinking that this managable , but it is not because

1. It totally depends on human memory , how efficient is your human memory and how long can you remember things ?
    
2. You know which version should works.
    
3. If something breaks , you open the whole folder
    

This makes problem when your project scales time to time.

**This is the first problem why the version control exists to replace the human memory with realiable history.**

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1769364122059/fcb6b3a8-1870-4d2d-88a6-87c459f1231a.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1769363249066/47c5eb39-0d3b-4f91-8100-97afd1997d8b.png align="center")

## 2\. The Moment the Collaboration Starts : The Pendrive Problem

Now Imagine , your friend want to collaborate in your code by adding the new features and fix the bugs.

So , What you’ll do you create a zip folder of your project and after that you put that folder in a pendrive and give it your friend and now he/she will unzip the file and then collaborate in your code bases.

Now , you can see this so much time consuming task and there are many other problems that exists like :-

* No Track of changes
    
* Manual Merging
    
* No Accountability
    
* No Rollbacks
    

I’ll Explain these all points one by one

1. No track of changes means when your friend returns the code , there no direct way to find what your friend has changed. Which file he changed , which lines he changed ?
    
    We manually have to compare and guess the changes.
    
2. Manual Merging means You have to open files side by side and then compare the files , rewrite the changes of what your friend do , and copy paste the changes.
    
3. No Accountability it means if something you cannot blame anyone who changed this ? , when was it changed ? and why was it changed ?
    
4. No Rollbacks means if you want yesterday code that is working , you cannot safely go back and older versions can be lost and overwritten.
    

After these all You will become stuck and guessing what to do.

This Problem becomes impossible to solve if projects scale and developers scale.

### After Facing All the problems , Some smart people created the version control system software that helps in tracking of the code and collaboration of the code smoothly.

By using the version control , You have history of own code and you have history of the other developers what they changes in your project and You have clear accountability , safe collaboration , rollback and recovery.

***This is How the version control exists and it is created and it is solving these problems.***

## One of the Popular Version Control System is GIT ,  
you can read this blog below if you want more understanding about version control and how to use git as tool.

[Git for Beginners: Basics and Essential Commands](https://ramankurai.hashnode.dev/git-for-beginners-basic-and-essential-commands)
