<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>dotgit.dev — Learn Git Internals</title>
    <link>https://dotgit.dev/</link>
    <description>Not just git commands — see what actually happens under the hood. File by file. Code by code.</description>
    <language>en-us</language>
    <lastBuildDate>Tue, 01 Sep 2026 13:58:56 GMT</lastBuildDate>
    <atom:link href="https://dotgit.dev/rss.xml" rel="self" type="application/rss+xml" />
    <image>
      <url>https://dotgit.dev/favicon.svg</url>
      <title>dotgit.dev</title>
      <link>https://dotgit.dev/</link>
    </image>
    <item>
      <title><![CDATA[How to Fix 'fatal: refusing to merge unrelated histories']]></title>
      <link>https://dotgit.dev/fatal-refusing-to-merge-unrelated-histories-fix</link>
      <guid isPermaLink="true">https://dotgit.dev/fatal-refusing-to-merge-unrelated-histories-fix</guid>
      <description><![CDATA[Learn why Git throws the 'refusing to merge unrelated histories' error when pulling or merging and how to fix it using --allow-unrelated-histories.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Remove a File from Git Without Deleting It Locally]]></title>
      <link>https://dotgit.dev/how-to-remove-file-from-git-without-deleting</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-remove-file-from-git-without-deleting</guid>
      <description><![CDATA[Learn how to use git rm --cached to stop tracking files in Git while keeping them safe on your local disk.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Cherry-Pick a Commit in Git (Step-by-Step)]]></title>
      <link>https://dotgit.dev/how-to-cherry-pick-commit-git</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-cherry-pick-commit-git</guid>
      <description><![CDATA[Learn how to use git cherry-pick to apply specific commits from one branch onto another without merging the entire branch.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Delete a Git Branch (Local and Remote)]]></title>
      <link>https://dotgit.dev/how-to-delete-local-and-remote-branch-git</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-delete-local-and-remote-branch-git</guid>
      <description><![CDATA[Learn how to delete local branches and remote tracking branches in Git safely using git branch -d and git push origin --delete.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[What Is the .git Folder? What's Inside and Why It Matters]]></title>
      <link>https://dotgit.dev/what-is-git-folder</link>
      <guid isPermaLink="true">https://dotgit.dev/what-is-git-folder</guid>
      <description><![CDATA[The .git folder is the entire repository — history, objects, refs, and config live there. See what every file inside .git/ does, whether you can delete it, and how it works.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Change Git Commit Author Name and Email]]></title>
      <link>https://dotgit.dev/how-to-change-git-commit-author</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-change-git-commit-author</guid>
      <description><![CDATA[Step-by-step guide to updating the author name and email for the last commit or multiple past commits in Git.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Squash Commits in Git (Interactive Rebase Guide)]]></title>
      <link>https://dotgit.dev/how-to-squash-commits-git</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-squash-commits-git</guid>
      <description><![CDATA[Learn how to combine multiple Git commits into a single clean commit using git rebase -i and git merge --squash.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[Git Reset vs Revert vs Checkout: Difference Explained]]></title>
      <link>https://dotgit.dev/git-reset-vs-revert-vs-checkout</link>
      <guid isPermaLink="true">https://dotgit.dev/git-reset-vs-revert-vs-checkout</guid>
      <description><![CDATA[A clear comparison of git reset, git revert, and git checkout — when to use each command and how they affect your commits and working tree.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[Git Fetch vs Git Pull: What is the Difference?]]></title>
      <link>https://dotgit.dev/git-pull-vs-fetch-difference</link>
      <guid isPermaLink="true">https://dotgit.dev/git-pull-vs-fetch-difference</guid>
      <description><![CDATA[git fetch downloads remote changes without touching your code; git pull downloads AND merges them. See the exact difference, what each changes inside .git/, and which one is safe.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[What is a Detached HEAD in Git and How to Fix It]]></title>
      <link>https://dotgit.dev/how-to-fix-detached-head-git</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-fix-detached-head-git</guid>
      <description><![CDATA[Understand what detached HEAD state means in Git, why it happens, and how to save your commits or safely return to a branch.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Resolve Git Merge Conflicts (Step-by-Step)]]></title>
      <link>https://dotgit.dev/git-merge-conflicts-how-to-fix</link>
      <guid isPermaLink="true">https://dotgit.dev/git-merge-conflicts-how-to-fix</guid>
      <description><![CDATA[A complete beginner-friendly guide to understanding, fixing, and resolving merge conflicts in Git safely.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Discard Local Uncommitted Changes in Git]]></title>
      <link>https://dotgit.dev/how-to-discard-local-changes-git</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-discard-local-changes-git</guid>
      <description><![CDATA[Learn how to discard untracked files, modified files, or staged changes in Git using git restore, git checkout, and git clean.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Rename a Git Branch (Local & Remote)]]></title>
      <link>https://dotgit.dev/how-to-rename-git-branch</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-rename-git-branch</guid>
      <description><![CDATA[Step-by-step guide to renaming a local and remote Git branch without losing tracking references or history.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Undo the Last Commit in Git]]></title>
      <link>https://dotgit.dev/how-to-undo-last-git-commit</link>
      <guid isPermaLink="true">https://dotgit.dev/how-to-undo-last-git-commit</guid>
      <description><![CDATA[Step-by-step guide on how to undo your last Git commit safely. Learn soft, mixed, and hard resets, fixing commit messages, and recovering lost work.]]></description>
      <pubDate>Wed, 12 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[Git Hooks Explained: Automating Git Workflows]]></title>
      <link>https://dotgit.dev/git-hooks</link>
      <guid isPermaLink="true">https://dotgit.dev/git-hooks</guid>
      <description><![CDATA[Learn how to automate workflows and enforce code standards with Git Hooks. Explore .git/hooks/ and write custom pre-commit and pre-push scripts.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[Git Packfiles Explained: Storage Optimization]]></title>
      <link>https://dotgit.dev/packfiles</link>
      <guid isPermaLink="true">https://dotgit.dev/packfiles</guid>
      <description><![CDATA[Discover how Git compresses history. Learn how loose objects are gathered into packfiles using delta compression to optimize disk space and network bandwidth.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[Git Refs Explained: Heads, Tags & Remotes]]></title>
      <link>https://dotgit.dev/git-refs</link>
      <guid isPermaLink="true">https://dotgit.dev/git-refs</guid>
      <description><![CDATA[Learn how Git uses references (refs) like branches, tags, and HEAD. Explore .git/refs/ to see how lightweight text files point to SHA-1 hashes.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[Git Objects Explained: What's Inside .git/objects]]></title>
      <link>https://dotgit.dev/git-objects</link>
      <guid isPermaLink="true">https://dotgit.dev/git-objects</guid>
      <description><![CDATA[Every file, folder, and commit in Git is an object stored inside .git/objects. See blobs, trees, commits, and tags for real — with commands you can run yourself.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git clone Explained: What Really Happens When You Clone a Repo]]></title>
      <link>https://dotgit.dev/git-clone</link>
      <guid isPermaLink="true">https://dotgit.dev/git-clone</guid>
      <description><![CDATA[git clone isn't copy-paste — it runs five Git commands in sequence and downloads the entire history. See exactly what lands inside .git/ when you clone.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git push Explained: Uploading Commits & Refs]]></title>
      <link>https://dotgit.dev/git-push</link>
      <guid isPermaLink="true">https://dotgit.dev/git-push</guid>
      <description><![CDATA[Learn how git push uploads local commits to GitHub/GitLab. Understand fast-forward checks, force-with-lease safety, and internal ref updates.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git pull Explained: Fetching & Merging Changes]]></title>
      <link>https://dotgit.dev/git-pull</link>
      <guid isPermaLink="true">https://dotgit.dev/git-pull</guid>
      <description><![CDATA[Learn how git pull executes behind the scenes. Understand its fetch and merge/rebase steps, conflict resolution, and internal .git file updates.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git fetch Explained: Remote Tracking & Objects]]></title>
      <link>https://dotgit.dev/git-fetch</link>
      <guid isPermaLink="true">https://dotgit.dev/git-fetch</guid>
      <description><![CDATA[Learn how git fetch downloads commits, objects, and refs from remote repositories into .git/refs/remotes/ without altering your local workspace.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git remote Guide: Managing Remote Repositories]]></title>
      <link>https://dotgit.dev/git-remote</link>
      <guid isPermaLink="true">https://dotgit.dev/git-remote</guid>
      <description><![CDATA[Master git remote to connect local repositories to GitHub or GitLab. Learn how remote tracking branches, refspecs, and .git/config entries work.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git stash Guide: Saving Work Without Committing]]></title>
      <link>https://dotgit.dev/git-stash</link>
      <guid isPermaLink="true">https://dotgit.dev/git-stash</guid>
      <description><![CDATA[Master git stash under the hood. Learn how Git creates commit objects to temporarily store your work, track untracked files, and manage the stash stack.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git rebase Explained: What Happens Inside .git/ (vs Merge)]]></title>
      <link>https://dotgit.dev/git-rebase</link>
      <guid isPermaLink="true">https://dotgit.dev/git-rebase</guid>
      <description><![CDATA[git rebase replays your commits on top of another branch for a clean linear history. See exactly what it rewrites inside .git/, when to rebase vs merge, and the golden rule that keeps you safe.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git merge Explained: Fast-Forward vs Three-Way, Inside .git/]]></title>
      <link>https://dotgit.dev/git-merge</link>
      <guid isPermaLink="true">https://dotgit.dev/git-merge</guid>
      <description><![CDATA[git merge combines two branch histories — a fast-forward when possible, a true three-way merge commit when they've diverged. Watch it happen inside .git/ and handle conflicts with confidence.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git checkout Explained: Switching Branches & HEAD]]></title>
      <link>https://dotgit.dev/git-checkout</link>
      <guid isPermaLink="true">https://dotgit.dev/git-checkout</guid>
      <description><![CDATA[Master git checkout under the hood. Learn how Git alters HEAD, index, and workspace files, and how to safely resolve the detached HEAD state.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git branch Explained: How Git Pointers Work]]></title>
      <link>https://dotgit.dev/git-branch</link>
      <guid isPermaLink="true">https://dotgit.dev/git-branch</guid>
      <description><![CDATA[Learn how git branch works under the hood. Understand refs, HEAD, and how Git creates branches as simple 41-byte text files in .git/refs/heads/.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git log Guide: Traversing Commit History & DAG]]></title>
      <link>https://dotgit.dev/git-log</link>
      <guid isPermaLink="true">https://dotgit.dev/git-log</guid>
      <description><![CDATA[Learn how to inspect your repository's history with git log. See how Git traverses the commit DAG (Directed Acyclic Graph) to render commit logs.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git commit Explained: Snapshots & Tree Objects]]></title>
      <link>https://dotgit.dev/git-commit</link>
      <guid isPermaLink="true">https://dotgit.dev/git-commit</guid>
      <description><![CDATA[See exactly what happens when you run git commit — how Git creates tree objects, commit objects, and updates ref pointers to store history.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git add Explained: How Staging and Blobs Work]]></title>
      <link>https://dotgit.dev/git-add</link>
      <guid isPermaLink="true">https://dotgit.dev/git-add</guid>
      <description><![CDATA[Understand what git add really does under the hood — how it creates blob objects in .git/objects and updates the binary index manifest.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git status Explained: How Git Tracks Changes]]></title>
      <link>https://dotgit.dev/git-status</link>
      <guid isPermaLink="true">https://dotgit.dev/git-status</guid>
      <description><![CDATA[Discover how git status works behind the scenes. Learn how Git compares workspace files, index manifest, and HEAD pointers to detect changes.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git init Explained: What Happens Inside .git/]]></title>
      <link>https://dotgit.dev/git-init</link>
      <guid isPermaLink="true">https://dotgit.dev/git-init</guid>
      <description><![CDATA[Learn what git init actually does — from creating the .git directory structure to initializing HEAD, refs, objects, and hooks in a new repository.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[git config Guide: System, Global & Local Settings]]></title>
      <link>https://dotgit.dev/git-config</link>
      <guid isPermaLink="true">https://dotgit.dev/git-config</guid>
      <description><![CDATA[Understand how git config works under the hood. Learn how local, global, and system configurations override settings and where Git stores them.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How to Install Git on Windows, Mac and Linux]]></title>
      <link>https://dotgit.dev/installing-git</link>
      <guid isPermaLink="true">https://dotgit.dev/installing-git</guid>
      <description><![CDATA[The complete guide to installing Git on Windows, macOS, and Linux. Step-by-step instructions and command verifications for every operating system.]]></description>
      <pubDate>Tue, 01 Sep 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[How Git is Different]]></title>
      <link>https://dotgit.dev/how-git-is-different</link>
      <guid isPermaLink="true">https://dotgit.dev/how-git-is-different</guid>
      <description><![CDATA[Discover why Git's snapshot-based architecture, local-first operations, and content-addressable database set it apart from traditional VCS like SVN.]]></description>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
    <item>
      <title><![CDATA[What Is Version Control System (VCS)]]></title>
      <link>https://dotgit.dev/what-is-version-control-system-vcs</link>
      <guid isPermaLink="true">https://dotgit.dev/what-is-version-control-system-vcs</guid>
      <description><![CDATA[A plain-English answer to what a version control system is, why every team needs one, and how Git stores the entire history inside .git/ — with an interactive simulator.]]></description>
      <pubDate>Fri, 21 Aug 2026 00:00:00 GMT</pubDate>
      <category>Git</category>
    </item>
  </channel>
</rss>