<?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[Understanding Git : insideout]]></title><description><![CDATA[Understanding Git : insideout]]></description><link>https://understanding-git-insideout.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Fri, 09 Oct 2026 13:06:31 GMT</lastBuildDate><atom:link href="https://understanding-git-insideout.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Understanding Git : insideout]]></title><description><![CDATA[When you first hear about Git, it often sounds complicated - lots of commands, strange words, and rules.But Git is actually built to solve a very simple problem:How do developers safely track changes in code over time?
Let’s understand Git step by st...]]></description><link>https://understanding-git-insideout.hashnode.dev/understanding-git-insideout</link><guid isPermaLink="true">https://understanding-git-insideout.hashnode.dev/understanding-git-insideout</guid><category><![CDATA[Git]]></category><category><![CDATA[version control]]></category><category><![CDATA[Developer Tools]]></category><category><![CDATA[software development]]></category><category><![CDATA[coding]]></category><category><![CDATA[Cohort2026]]></category><category><![CDATA[Beginner Developers]]></category><dc:creator><![CDATA[Pritesh Kittur]]></dc:creator><pubDate>Thu, 08 Jan 2026 07:44:26 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1767857931753/a3c1243e-58c2-4a02-aaa3-dba64a7b0b55.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>When you first hear about Git, it often sounds complicated - lots of commands, strange words, and rules.<br />But Git is actually built to solve a <strong>very simple problem</strong>:<br /><em>How do developers safely track changes in code over time?</em></p>
<p>Let’s understand Git step by step using the diagrams below.</p>
<h2 id="heading-what-is-git">What is Git?</h2>
<p>Git is a <strong>version control system</strong>.</p>
<p>In simple words, Git helps you:</p>
<ul>
<li><p>keep a history of your code by creating and storing objects not codebases.</p>
</li>
<li><p>save different versions safely.</p>
</li>
<li><p>go back to older versions if something breaks.</p>
</li>
</ul>
<p>Instead of copying folders like <code>project_final</code> or <code>project_final_v2</code>, Git manages everything for you automatically.</p>
<h2 id="heading-why-git-is-used">Why Git Is Used</h2>
<p>Developers use Git because:</p>
<ol>
<li><p>Code changes all the time</p>
</li>
<li><p>Mistakes happen</p>
</li>
<li><p>Multiple people work on the same project</p>
</li>
</ol>
<p>Git makes sure:</p>
<p>a. Nothing is lost so that if enything goes wrong then we can revert to previous version without any issues.</p>
<p>b. Every change is recorded so that everyone can be accountable in team.</p>
<p>c. Teamwork stays organized and it does not become damage control.</p>
<h2 id="heading-git-basics-and-core-terminologies">Git Basics and Core Terminologies</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1767857169352/fe4da200-838b-4527-a756-863cafc4fc95.png" alt class="image--center mx-auto" /></p>
<h3 id="heading-working-directory-staging-area-repository">Working Directory, Staging Area, Repository</h3>
<p>Look at the <strong>first diagram</strong>.</p>
<p>This shows how Git handles your code internally.</p>
<ol>
<li><p><strong>Working Directory</strong></p>
<ul>
<li><p>This is where you write and edit files</p>
</li>
<li><p>Git is not tracking changes yet</p>
</li>
</ul>
</li>
<li><p><strong>Staging Area</strong></p>
<ul>
<li><p>When you run <code>git add</code>, files move here</p>
</li>
<li><p>You are telling Git:<br />  <em>“I want to include this in the next save”</em></p>
</li>
</ul>
</li>
<li><p><strong>Repository</strong></p>
<ul>
<li><p>When you run <code>git commit</code>, Git saves a snapshot</p>
</li>
<li><p>This snapshot is stored permanently in history</p>
</li>
</ul>
</li>
</ol>
<p>Git does not save files directly instead, it saves <strong>snapshots of your project</strong>.</p>
<h2 id="heading-commit-and-commit-history">Commit and Commit History</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1767857335298/8fce2ac2-b605-452a-a5ed-d1ddc3170f62.png" alt class="image--center mx-auto" /></p>
<p>Look at the <strong>above diagram: Commit History Flow</strong>.</p>
<p>Each box is a <strong>commit</strong> along with a unique message:</p>
<ul>
<li><p>Commit 1 → Initial commit</p>
</li>
<li><p>Commit 2 → Feature added</p>
</li>
<li><p>Commit 3 → Bug fixed</p>
</li>
</ul>
<p>Each commit represents a point in time which points to the previous commit and forms a chain called <strong>commit history</strong></p>
<p>This is why you can see old changes, understand what happened when and undo mistakes safely</p>
<h2 id="heading-core-git-terms-simple-meaning">Core Git Terms (Simple Meaning)</h2>
<ul>
<li><p><strong>Repository:</strong> A project managed by Git</p>
</li>
<li><p><strong>Commit:</strong> A saved snapshot of your code</p>
</li>
<li><p><strong>Branch:</strong> A separate line of development</p>
</li>
<li><p><strong>HEAD:</strong> Points to where you are currently working</p>
</li>
</ul>
<p>You don’t need to memorize these - they make sense as you use Git.</p>
<h2 id="heading-common-git-commands">Common Git Commands</h2>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1767857678105/d247ac0b-52da-4dd7-b14e-208fd25a7d8c.png" alt class="image--center mx-auto" /></p>
<p>The <strong>third diagram</strong> shows commonly used Git commands and how they fit together.</p>
<h3 id="heading-basic-commands">Basic Commands</h3>
<ul>
<li><p><code>git init</code>: Starts Git tracking in a folder</p>
</li>
<li><p><code>git status</code>: Shows what has changed</p>
</li>
<li><p><code>git add</code>: Moves changes to the staging area</p>
</li>
<li><p><code>git commit</code>: Saves changes permanently</p>
</li>
<li><p><code>git log</code>: Shows commit history</p>
</li>
</ul>
<h3 id="heading-other-useful-commands">Other Useful Commands</h3>
<ul>
<li><p><code>git diff</code> - see changes</p>
</li>
<li><p><code>git branch</code> - manage branches</p>
</li>
<li><p><code>git merge</code> - combine work</p>
</li>
<li><p><code>git pull / push</code> - sync with remote</p>
</li>
<li><p><code>git clone</code> - copy a repository</p>
</li>
</ul>
<h2 id="heading-a-simple-git-workflow-from-scratch">A Simple Git Workflow (From Scratch)</h2>
<ol>
<li><p>First create a project folder</p>
</li>
<li><p>Run <code>git init</code></p>
</li>
<li><p>Write some code</p>
</li>
<li><p>Run <code>git status</code></p>
</li>
<li><p>Stage changes using <code>git add</code></p>
</li>
<li><p>Save them using <code>git commit</code></p>
</li>
<li><p>Repeat as you improve the project</p>
</li>
</ol>
<p>That’s it. This loop is Git.</p>
<h2 id="heading-conclusion">Conclusion</h2>
<p>So we get to know that - Git is not about commands.<br />It’s about <strong>tracking progress</strong>.</p>
<p>Once you understand:</p>
<ol>
<li><p>working directory</p>
</li>
<li><p>staging area</p>
</li>
<li><p>commits and history</p>
</li>
</ol>
<p>Git becomes predictable, not scary.</p>
<p>Learn the flow, not the fear -<br />and Git will feel like a helpful assistant, not a burden.</p>
]]></content:encoded></item></channel></rss>