<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aritra Chatterjee</title>
    <description>The latest articles on DEV Community by Aritra Chatterjee (@aritrachatterjee9957).</description>
    <link>https://dev.to/aritrachatterjee9957</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3841092%2Fca13588c-f7dc-444f-8724-cc105c62a4d0.jpg</url>
      <title>DEV Community: Aritra Chatterjee</title>
      <link>https://dev.to/aritrachatterjee9957</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aritrachatterjee9957"/>
    <language>en</language>
    <item>
      <title>What Really Happens When You Click a Link</title>
      <dc:creator>Aritra Chatterjee</dc:creator>
      <pubDate>Wed, 10 Jun 2026 05:39:05 +0000</pubDate>
      <link>https://dev.to/aritrachatterjee9957/what-really-happens-when-you-click-a-link-2lem</link>
      <guid>https://dev.to/aritrachatterjee9957/what-really-happens-when-you-click-a-link-2lem</guid>
      <description>&lt;p&gt;You click a link.&lt;/p&gt;

&lt;p&gt;In under two seconds, a webpage built by someone in San Francisco loads on your phone in Delhi. No one handed it to you. Thousands of decisions happened invisibly — packets raced through cables, routers made split-second choices, servers responded in milliseconds.&lt;/p&gt;

&lt;p&gt;Most people never think about any of this. Let's change that.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Is a Network?
&lt;/h2&gt;

&lt;p&gt;Before we get to the Internet, let's start smaller.&lt;/p&gt;

&lt;p&gt;A network is simply a group of computers connected so they can exchange information.&lt;/p&gt;

&lt;p&gt;Here's a concrete way to think about it: imagine everyone in an office shares a printer. Their computers are all connected to it — and to each other — through a local network. No Internet needed. Just devices talking directly.&lt;/p&gt;

&lt;p&gt;Now imagine millions of these office networks, home networks, and data centre networks all linked together.&lt;/p&gt;

&lt;p&gt;That's the Internet — a network of networks. In fact, the word &lt;strong&gt;Internet&lt;/strong&gt; literally comes from &lt;strong&gt;inter&lt;/strong&gt;connected &lt;strong&gt;net&lt;/strong&gt;works.&lt;/p&gt;

&lt;p&gt;Because these networks are all linked, a computer in Delhi can talk to one in New York almost instantly.&lt;/p&gt;




&lt;h2&gt;
  
  
  How Do Computers Actually Send Data?
&lt;/h2&gt;

&lt;p&gt;Computers don't send data through thin air (well, sometimes they do — but even then, it's structured).&lt;/p&gt;

&lt;p&gt;Data travels through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Fiber-optic cables&lt;/li&gt;
&lt;li&gt;Ethernet cables&lt;/li&gt;
&lt;li&gt;Wi-Fi signals&lt;/li&gt;
&lt;li&gt;Cellular networks&lt;/li&gt;
&lt;li&gt;Satellites&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Whatever the medium, all data gets converted into &lt;strong&gt;bits&lt;/strong&gt; — the fundamental unit of digital information, represented physically as electrical signals or pulses of light.&lt;/p&gt;

&lt;p&gt;These bits travel at speeds close to the speed of light. The more bits that can move at once, the faster your connection feels. That's the difference between a fibre connection loading a movie in two seconds and a weak signal buffering for ten.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Two Ideas That Run the Internet
&lt;/h2&gt;

&lt;p&gt;Almost everything that happens online comes down to two concepts:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Packets&lt;/strong&gt; — how data is broken up and sent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Protocols&lt;/strong&gt; — the rules that make communication possible&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's take each one.&lt;/p&gt;




&lt;h2&gt;
  
  
  Packets: Think of Moving a Library
&lt;/h2&gt;

&lt;p&gt;Imagine you're moving an entire library to a new building.&lt;/p&gt;

&lt;p&gt;You wouldn't carry every book at once. You'd pack them into boxes, label each box, and transport them one by one. At the other end, you'd unpack and arrange them in order.&lt;/p&gt;

&lt;p&gt;The Internet works exactly like this.&lt;/p&gt;

&lt;p&gt;When you load a webpage, your browser doesn't receive the whole page in one go. The data is broken into small chunks called &lt;strong&gt;packets&lt;/strong&gt;. Each packet contains:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A piece of the actual data&lt;/li&gt;
&lt;li&gt;Where it came from&lt;/li&gt;
&lt;li&gt;Where it's going&lt;/li&gt;
&lt;li&gt;How to reassemble it&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This extra routing information lives in the packet's &lt;strong&gt;header&lt;/strong&gt; — think of it as the shipping label on a box.&lt;/p&gt;

&lt;p&gt;Here's something most people don't know: packets from the &lt;em&gt;same request&lt;/em&gt; can take completely &lt;strong&gt;different physical routes&lt;/strong&gt; across the Internet and still arrive and reassemble correctly at the destination. One packet might go through London. Another through Singapore. They both end up at your browser, get sorted, and become the webpage you see.&lt;/p&gt;

&lt;p&gt;That's not a bug. That's a feature — it makes the Internet resilient.&lt;/p&gt;




&lt;h2&gt;
  
  
  Protocols: Everyone Speaks the Same Language
&lt;/h2&gt;

&lt;p&gt;Different devices — iPhones, Android phones, Windows laptops, Linux servers — all need to communicate with each other. They use different hardware, different operating systems, and different software.&lt;/p&gt;

&lt;p&gt;So how do they understand each other?&lt;/p&gt;

&lt;p&gt;Protocols. A protocol is just an agreed-upon set of rules for how data should be formatted, sent, received, and interpreted.&lt;/p&gt;

&lt;p&gt;Here are the ones that matter most:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Protocol&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Ethernet&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Handles communication between devices on the same local network&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Delivers packets from one network to another — like a postal address for computers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TCP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Guarantees packets arrive successfully, in order, with nothing missing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UDP&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Prioritises speed over reliability — drops packets rather than wait to resend them&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;HTTP/HTTPS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;How browsers and servers exchange website data&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;TLS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Encrypts the connection so no one can read your data in transit&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;TCP vs UDP&lt;/strong&gt; is worth pausing on because people often get confused here.&lt;/p&gt;

&lt;p&gt;TCP is reliable but slower — if a packet gets lost, TCP notices and requests it again. That's what you want when downloading a file or loading a webpage. Missing data would corrupt the result.&lt;/p&gt;

&lt;p&gt;UDP is fast but doesn't care about lost packets. That's fine for live video calls or gaming — if one frame drops, you don't want the video to freeze and rewind. You just want to keep going. A tiny glitch is less painful than a constant delay.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Hardware That Makes It Physical
&lt;/h2&gt;

&lt;p&gt;The Internet isn't floating in a cloud somewhere. It runs on real hardware, spread across the entire planet.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Component&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;Analogy&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Router&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Directs packets between different networks&lt;/td&gt;
&lt;td&gt;Traffic officer at an intersection&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Switch&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Connects devices &lt;em&gt;within&lt;/em&gt; the same network&lt;/td&gt;
&lt;td&gt;Receptionist routing calls inside an office&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Server&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Stores and delivers content when requested&lt;/td&gt;
&lt;td&gt;The library that holds the books&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The key distinction people mix up: &lt;strong&gt;routers connect networks; switches connect devices within a network.&lt;/strong&gt; A router decides &lt;em&gt;which road&lt;/em&gt; a packet takes. A switch decides &lt;em&gt;which desk&lt;/em&gt; it lands on.&lt;/p&gt;

&lt;p&gt;Most servers live in massive &lt;strong&gt;data centres&lt;/strong&gt; — warehouses packed with thousands of machines running around the clock, with backup power, cooling systems, and redundant connections.&lt;/p&gt;




&lt;h2&gt;
  
  
  What Actually Happens When You Open a Webpage
&lt;/h2&gt;

&lt;p&gt;Let's make this concrete. You type a URL and hit Enter.&lt;/p&gt;

&lt;p&gt;Here's what happens next — all in under two seconds:&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 1: DNS Lookup
&lt;/h3&gt;

&lt;p&gt;Your browser knows the name &lt;code&gt;example.com&lt;/code&gt; but has no idea what IP address that maps to. So it asks the &lt;strong&gt;Domain Name System (DNS)&lt;/strong&gt; — essentially the Internet's phonebook.&lt;/p&gt;

&lt;p&gt;DNS translates &lt;code&gt;example.com&lt;/code&gt; → &lt;code&gt;93.184.216.34&lt;/code&gt; (or whatever the server's IP is).&lt;/p&gt;

&lt;p&gt;Worth knowing: DNS responses are &lt;strong&gt;cached&lt;/strong&gt;. If you've visited a site recently, your browser already knows the IP and skips this step. That's one reason revisiting a site often feels faster.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 2: TCP Handshake
&lt;/h3&gt;

&lt;p&gt;Your browser contacts the server at that IP address, and they perform a &lt;strong&gt;three-way handshake&lt;/strong&gt; — SYN, SYN-ACK, ACK. Roughly: "Can we talk?" / "Yes, can we?" / "Yes." Now they're in sync and ready to communicate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 3: TLS Handshake
&lt;/h3&gt;

&lt;p&gt;If the site uses HTTPS (it should), your browser and the server exchange encryption keys. Everything from this point forward is encrypted. Even if someone intercepts your packets, they see gibberish.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 4: HTTP Request
&lt;/h3&gt;

&lt;p&gt;Your browser sends a request: &lt;em&gt;"Give me the content for this page."&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 5: HTTP Response
&lt;/h3&gt;

&lt;p&gt;The server responds with HTML, CSS, and JavaScript — all broken into packets and sent across the Internet.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step 6: Browser Renders the Page
&lt;/h3&gt;

&lt;p&gt;Your browser receives the packets, verifies everything arrived, reassembles them, and interprets the code. HTML builds the structure, CSS handles the styling, and JavaScript adds interactivity.&lt;/p&gt;

&lt;p&gt;What you see on screen is the result of all of that — rendered in milliseconds.&lt;/p&gt;




&lt;h2&gt;
  
  
  The Big Picture
&lt;/h2&gt;

&lt;p&gt;The Internet isn't magic. It's a very elegant set of agreements.&lt;/p&gt;

&lt;p&gt;Networks connect computers. Packets carry information in manageable chunks. Protocols make sure every device on the planet can understand every other device. Routers and switches move traffic efficiently. Servers store and serve content on demand.&lt;/p&gt;

&lt;p&gt;Every time you click a link, all of this fires at once — invisibly, reliably, and incredibly fast.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>networking</category>
      <category>network</category>
    </item>
    <item>
      <title>Git &amp; GitHub 101: A Beginner's Guide to Version Control</title>
      <dc:creator>Aritra Chatterjee</dc:creator>
      <pubDate>Wed, 13 May 2026 12:18:52 +0000</pubDate>
      <link>https://dev.to/aritrachatterjee9957/git-github-101-a-beginners-guide-to-version-control-3mc3</link>
      <guid>https://dev.to/aritrachatterjee9957/git-github-101-a-beginners-guide-to-version-control-3mc3</guid>
      <description>&lt;p&gt;Your friend leans over and says, &lt;em&gt;"Just push it to GitHub."&lt;/em&gt; You smile. You nod. You have absolutely no idea what that means.&lt;/p&gt;

&lt;p&gt;By the end of this blog, you won't just understand what it means — you'll be able to say it yourself, and explain it to someone else. Let's start from the very beginning.&lt;/p&gt;




&lt;h2&gt;
  
  
  First Things First: What is a Version Control System?
&lt;/h2&gt;

&lt;p&gt;Before we talk about Git or GitHub, we need to understand the problem they solve.&lt;/p&gt;

&lt;p&gt;Imagine you're building a website. You make some changes, something breaks, and now you can't remember what your code looked like before. Sound familiar?&lt;/p&gt;

&lt;p&gt;A &lt;strong&gt;Version Control System (VCS)&lt;/strong&gt; is a tool that tracks and manages changes to your files over time. Think of it as a time machine for your code — one that remembers every version of your project, so you can always go back.&lt;/p&gt;

&lt;p&gt;With a VCS, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Save different versions of your code&lt;/li&gt;
&lt;li&gt;Revert to a previous version if something breaks&lt;/li&gt;
&lt;li&gt;Collaborate with other developers without overwriting each other's work&lt;/li&gt;
&lt;li&gt;Track who changed what, and when&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Three Types of Version Control Systems
&lt;/h2&gt;

&lt;p&gt;Not all VCS tools work the same way. Here's how they've evolved:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;How It Works&lt;/th&gt;
&lt;th&gt;Examples&lt;/th&gt;
&lt;th&gt;Key Trade-off&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Local VCS&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Store versions only on your computer&lt;/td&gt;
&lt;td&gt;—&lt;/td&gt;
&lt;td&gt;Simple, but zero collaboration support&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Centralised VCS (CVCS)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;All versions live on one central server&lt;/td&gt;
&lt;td&gt;SVN, CVS&lt;/td&gt;
&lt;td&gt;Easy collaboration, but if the server goes down, everyone's stuck&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Distributed VCS (DVCS)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Every developer has a full copy of the project&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Git&lt;/strong&gt;, Mercurial&lt;/td&gt;
&lt;td&gt;Fast, offline-friendly, and more secure — the modern standard&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Git is a &lt;strong&gt;distributed VCS&lt;/strong&gt;, which is exactly why it became the industry standard.&lt;/p&gt;




&lt;h2&gt;
  
  
  Meet Git
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Git is like Microsoft Word's Track Changes — but for your entire codebase, and about 100x more powerful."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Git&lt;/strong&gt; is a distributed version control system created by &lt;strong&gt;Linus Torvalds in 2005&lt;/strong&gt; (yes, the same person who built the Linux kernel). It runs locally on your computer and takes &lt;strong&gt;snapshots&lt;/strong&gt; of your project every time you save your progress.&lt;/p&gt;

&lt;p&gt;Here's what makes Git special:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast&lt;/strong&gt; — most operations happen on your own machine, no internet needed&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Branching&lt;/strong&gt; — you can create separate "versions" of your project to experiment freely&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Backup built-in&lt;/strong&gt; — every copy of a Git project is a full backup&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free and open source&lt;/strong&gt; — used by millions of developers worldwide&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So when someone says &lt;em&gt;"commit your changes"&lt;/em&gt; — they mean Git just saved a snapshot of your code at that moment. Like a save point in a video game.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;Git Official Website&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Meet GitHub
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Git is the tool. GitHub is where you put your work so the world can see it."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;GitHub&lt;/strong&gt; is a cloud-based platform that hosts your Git repositories online. While Git works on your computer, GitHub lets you:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store your project in the cloud&lt;/li&gt;
&lt;li&gt;Collaborate with a team&lt;/li&gt;
&lt;li&gt;Review each other's code via &lt;strong&gt;Pull Requests&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Track bugs and features with &lt;strong&gt;Issues&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Connect to deployment pipelines with &lt;strong&gt;CI/CD integrations&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The simplest way to remember the difference:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Git&lt;/th&gt;
&lt;th&gt;GitHub&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;What it is&lt;/td&gt;
&lt;td&gt;A version control tool&lt;/td&gt;
&lt;td&gt;A platform to host repositories&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Where it runs&lt;/td&gt;
&lt;td&gt;Your local computer&lt;/td&gt;
&lt;td&gt;Online (browser/app)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Works offline?&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ Mostly no&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Made by&lt;/td&gt;
&lt;td&gt;Linus Torvalds&lt;/td&gt;
&lt;td&gt;GitHub Inc.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;So when someone says &lt;em&gt;"push it to GitHub”&lt;/em&gt; — they mean: upload your Git snapshots to the cloud so others can see and access them.&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub Official Website&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Core Concepts (With Real-World Analogies)
&lt;/h2&gt;

&lt;p&gt;This is the part most beginner guides skip. Let's make sure the key ideas actually stick.&lt;/p&gt;

&lt;h3&gt;
  
  
  📁 Repository (Repo)
&lt;/h3&gt;

&lt;p&gt;A repository is your project folder — but one that has a memory. It remembers every single change ever made to every file inside it.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"It's your project folder if your project folder kept a journal."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;A repo can be &lt;strong&gt;local&lt;/strong&gt; (on your computer) or &lt;strong&gt;remote&lt;/strong&gt; (on GitHub).&lt;/p&gt;




&lt;h3&gt;
  
  
  📸 Commit
&lt;/h3&gt;

&lt;p&gt;A commit is a saved snapshot of your project at a specific moment in time.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Think of commits like save points in a video game. Git doesn't just save where you are — it remembers every save point you've ever made. Died at level 5? Roll back to level 3 and try again."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Every commit has a message describing what changed, like: &lt;code&gt;"Added login page"&lt;/code&gt; or &lt;code&gt;"Fixed the navbar bug"&lt;/code&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  🎭 Staging Area
&lt;/h3&gt;

&lt;p&gt;Before you commit, you first decide &lt;em&gt;what&lt;/em&gt; you want to include in the save.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Imagine packing for a trip. You don't throw everything straight into the suitcase. First, you lay things out on the bed and decide what makes the cut. The bed is your staging area. &lt;code&gt;git add&lt;/code&gt; is you deciding what goes in."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🌿 Branch
&lt;/h3&gt;

&lt;p&gt;A branch is a parallel version of your project where you can experiment freely.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Branches are like a parallel universe for your code. The &lt;code&gt;main&lt;/code&gt; branch is your real, working world. You create a new branch to experiment — and whatever chaos happens there, stays there. It doesn't touch the main world until you decide to merge it back."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9rxwtthydbxxfvv1nx6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl9rxwtthydbxxfvv1nx6.png" alt="Git branch flow" width="799" height="377"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Common example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt; → your stable, live code&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;feature-login&lt;/code&gt; → new login feature being built separately&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The Basic Git Workflow
&lt;/h2&gt;

&lt;p&gt;Here's what a typical day with Git looks like. Let's walk through it step by step, so nothing feels like magic.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovwt1iruqc706nwxqm4v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fovwt1iruqc706nwxqm4v.png" alt="basic git workflow" width="800" height="133"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 1: Write or edit your code
&lt;/h3&gt;

&lt;p&gt;Just work normally in your project folder. Nothing Git-specific yet.&lt;/p&gt;




&lt;h3&gt;
  
  
  Step 2: Stage your changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;The &lt;code&gt;.&lt;/code&gt; means "everything." You're telling Git: &lt;em&gt;"Hey, watch all these files — I'm about to save them."&lt;/em&gt; Nothing is saved yet. You're just raising your hand.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Step 3: Commit your changes
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Added login page"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Now you're actually saving. The &lt;code&gt;-m&lt;/code&gt; flag lets you write a message — a note to your future self (or teammates) explaining what changed. Think of it like adding a caption to a photo: &lt;em&gt;"Here's the project on day 12, with the login page added."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  Step 4: Push to GitHub
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git push origin main
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;Two things to know here:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;origin&lt;/code&gt; — Git's nickname for your GitHub repository (the remote/online version of your project)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;main&lt;/code&gt; — the branch you're pushing to (the primary, stable version)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So this line says: &lt;em&gt;"Upload my saved changes to the main branch of my GitHub project."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  Common Git Commands Cheat Sheet
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Command&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git init&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Start a new Git repository in your folder&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git clone &amp;lt;URL&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Download a repository from GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;See what's changed and what's staged&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Stage all changes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git commit -m "msg"&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Save a snapshot with a description&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git push&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Upload your commits to GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git pull&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Download the latest changes from GitHub&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git branch&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;View or create branches&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git checkout -b &amp;lt;name&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Create and switch to a new branch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;code&gt;git merge &amp;lt;branch&amp;gt;&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Merge a branch into your current one&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Pro tip:&lt;/strong&gt; Run &lt;code&gt;git status&lt;/code&gt; constantly. It tells you exactly what state your files are in — which are untracked (red), which are staged (green), and whether you're ahead of GitHub.&lt;/p&gt;




&lt;h2&gt;
  
  
  Working With Branches
&lt;/h2&gt;

&lt;p&gt;Creating a branch is one of the most powerful things you can do in Git. Here's how:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Create a new branch&lt;/span&gt;
git branch feature-login

&lt;span class="c"&gt;# Switch to it&lt;/span&gt;
git checkout feature-login

&lt;span class="c"&gt;# Or do both in one command&lt;/span&gt;
git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; feature-login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Once your feature is ready, you merge it back into &lt;code&gt;main&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git checkout main
git merge feature-login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No chaos. No broken main code. Just clean, parallel development.&lt;/p&gt;




&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;So — next time someone says &lt;em&gt;"just push it to GitHub"&lt;/em&gt; — you've got them.&lt;/p&gt;

&lt;p&gt;You now know that Git is the tool that tracks your changes locally, and GitHub is the platform that hosts your work online. You know what a commit is (a save point), what a branch is (a parallel universe for your code), and what staging means (packing your suitcase before the trip).&lt;/p&gt;

&lt;p&gt;Git isn't just another tool you learn for fun. It's the tool every software team on the planet already uses. Mastering it doesn't just make you a better developer — it makes you a hireable one.&lt;/p&gt;

&lt;p&gt;Now go initialise a repo. You've earned it.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>git</category>
      <category>github</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
