<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[From Pendrive to Git: Why We Build]]></title><description><![CDATA[From Pendrive to Git: Why We Build]]></description><link>https://pendrivepaglu.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sun, 06 Sep 2026 17:35:21 GMT</lastBuildDate><atom:link href="https://pendrivepaglu.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[The Peculiar Story of Why?]]></title><description><![CDATA[Let’s start with something different. Human Beings, as we all know, have always strived towards problem-solving and making things easier. It’s in our blood to avoid hard things and make them simpler. And that’s the reason technology came into existen...]]></description><link>https://pendrivepaglu.hashnode.dev/the-peculiar-story-of-why</link><guid isPermaLink="true">https://pendrivepaglu.hashnode.dev/the-peculiar-story-of-why</guid><category><![CDATA[story behind git/github]]></category><category><![CDATA[GitHub]]></category><category><![CDATA[Git]]></category><category><![CDATA[version control]]></category><category><![CDATA[why to use git]]></category><dc:creator><![CDATA[Ishu Singh]]></dc:creator><pubDate>Thu, 15 Jan 2026 15:26:40 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1768468983299/b028f5f5-82e2-462f-9987-ac9dcd75bd9b.avif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Let’s start with something different. Human Beings, as we all know, have always strived towards problem-solving and making things easier. It’s in our blood to avoid hard things and make them simpler. And that’s the reason technology came into existence, to make our lives easier. And with technology came so many complexities that we are still today trying to solve.</p>
<p>Let’s come to our main point of this blog. Why did even version control (don’t worry, I will explain it in the next blog if you don’t know it yet—assume it is like a collaboration platform) come into existence? Like, many developers know how to use Git and GitHub, like, "Here are the commands, and here go my project files," but why do we even use it?? Let’s understand it by a story.</p>
<h2 id="heading-the-pendrive-story">The Pendrive Story</h2>
<p>Raj and Ishu are 2 collegemates. In their 5th semester they are assigned a group project which they have to submit. They now encounter a challenge in front of them, none of them can bring their laptop to the college to work together. Raj brings up a solution, He will zip up the code, put it in the pendrive and then give it to Ishu, he can work upon the project and return it to Raj hence in a way both can work on the project. But several problems occurred when they implemented this method-</p>
<ul>
<li><p>First of all only 1 person could work on the project at a time. When Raj was working, Ishu had to wait until Pendrive was handed over to him. Same with Raj hence in a way there was no “group” in this group project, rather 2 individuals working one by one.</p>
</li>
<li><p>Second it used to take huge amount of time to understand what changes the other person has done, what functionalities he has added, what bugs he had removed and how to merge the own idea into existing codebase.</p>
</li>
<li><p>There was no responsibility when they used to encounter bugs or problems, once used to blame the other that he wrote the code or he made the changes into it. This used to result in ugly fights and bad communication.</p>
</li>
<li><p>At times, due to ego clash Raj used to rewrite the whole code written by Ishu just he had smaller disagreements or fights over the project. Ishu lost his hard work just because of heat of the moment. There was no mechanism of recoverability.</p>
</li>
</ul>
<p>In a case if Raj encounters a bug with his code after he had given the pendrive to Ishu, he will either have to explain it or wait for the pendrive. If he will make changes in its own copy, the bug would not get fixed.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768470519451/8f4a2ce5-f288-413b-923f-0b7ebbb8f086.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-enter-the-heroversion-control"><strong>ENTER THE HERO:VERSION CONTROL</strong></h2>
<p>Raj and Ishu thought this problem was unique</p>
<p>Multiply this setup by 10 people.<br />Then 100.<br />Then thousands of developers working on the same codebase.</p>
<p>Without structure, collaboration turns into chaos. And chaos doesn’t scale.</p>
<p>This is exactly the problem version control was designed to solve.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768472268854/a84b7a19-663d-4a7f-8b8a-c73d6217c1f7.png" alt class="image--center mx-auto" /></p>
<p>Linus Torvalds, Founder of Linux faced exactly these issues while building Linux. His project grew so big that he started Git , the most popular version control we know today as a side project :)</p>
<h3 id="heading-how-does-version-control-works">How does version control works?</h3>
<p>In simple terms, Version control simply keeps tracks of what changes are being done in the file. Take this analogy- you have an old image and a new image of the same thing, you can easily tell the difference. In the same manner version control stores the differences. If a line is added, it is marked with a <code>+</code>.<br />If a line is removed, it is marked with a <code>-</code>.<br />This solves the problem of tracking. We can easily store what changes were made, by whom and when, which feature was added, and which bug was fixed.</p>
<p>However, this alone doesn’t fully solve the problem of collaboration. To make collaboration possible, we use a shared server where developers can sync their work. These servers are called <strong>Version Control System remotes</strong> (VCS remotes or simply <em>remotes</em>). GitHub, GitLab, and Mercurial are some of the most popular VCS remotes.</p>
<p>These remotes act as a <strong>final source of truth</strong>. Even if multiple copies of the same project exist on different machines, the version hosted on the remote is the one the team agrees on as the official state of the project.<br />So now we have tackled all the challenged faced during collaborating in a software project -</p>
<ol>
<li><p>Changes can be easily tracked through git.</p>
</li>
<li><p>Both Raj and Ishu can work at the project at the same time. Raj can handle a sticky bug, while Ishu can test for the new feature.</p>
</li>
<li><p>No more fear of breaking the project<br /> With Git, every meaningful change is saved as a <em>checkpoint.</em><br /> If Raj introduces a bug today, they can safely go back to a previous working version without rewriting anything.</p>
</li>
<li><p>Version control also provides recoverability, work is never lost even if somebody deletes it in anger or due to ego clash.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1768489568417/cf4bd3f6-8337-4421-b257-563cf2ce10b0.png" alt class="image--center mx-auto" /></p>
<p> What started as a pendrive being passed hand to hand was never really collaboration. It was just survival.</p>
<p> Version control changes that completely. Now Raj and Ishu don’t wait on each other, don’t overwrite work in anger, and don’t lose weeks of effort because of one mistake. They work in parallel, track every change, and always have a way back.</p>
<p> Git doesn’t just store code. It stores history, responsibility, and trust which is why in modern software development, version control isn’t optional. It’s mandatory.</p>
</li>
</ol>
]]></content:encoded></item></channel></rss>