<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Modern Git Academy — Lessons</title><description>New and updated lessons from Modern Git Academy. Master Git. Engineer on GitHub. Automate Everything.</description><link>https://moderngitacademy.com/</link><language>en-us</language><item><title>Getting Started 1: What Is Git? A Practical Guide to Version Control</title><link>https://moderngitacademy.com/git/what-is-git/</link><guid isPermaLink="true">https://moderngitacademy.com/git/what-is-git/</guid><description>Git is a distributed version control system that records project history as snapshots. Learn what it does, why it exists, and how developers use it.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner</category></item><item><title>Getting Started 2: Git vs GitHub: What&apos;s the Difference?</title><link>https://moderngitacademy.com/git/git-vs-github/</link><guid isPermaLink="true">https://moderngitacademy.com/git/git-vs-github/</guid><description>Git is version control software you run locally. GitHub is a hosting platform built around it. Here is exactly where one ends and the other begins.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner</category></item><item><title>Getting Started 3: How Git Works: Working Tree, Index, HEAD and Objects</title><link>https://moderngitacademy.com/git/how-git-works/</link><guid isPermaLink="true">https://moderngitacademy.com/git/how-git-works/</guid><description>A complete walkthrough of Git&apos;s data model: the working tree, the index, the object database, refs, and what git add and git commit really do.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner → Intermediate</category></item><item><title>Getting Started 4: How to Install Git on Ubuntu (and Configure It Properly)</title><link>https://moderngitacademy.com/git/install-git-ubuntu/</link><guid isPermaLink="true">https://moderngitacademy.com/git/install-git-ubuntu/</guid><description>Install Git on Ubuntu with apt, verify the version, and configure identity, default branch, editor and credentials across all three config scopes.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner</category></item><item><title>Getting Started 5: How to Install Git on Windows: Git for Windows, winget and Setup</title><link>https://moderngitacademy.com/git/install-git-windows/</link><guid isPermaLink="true">https://moderngitacademy.com/git/install-git-windows/</guid><description>Install Git on Windows with winget or the official installer, then configure line endings, the credential manager, default branch and your editor.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner</category></item><item><title>Getting Started 6: How to Install Git on macOS: Xcode Tools, Homebrew and Setup</title><link>https://moderngitacademy.com/git/install-git-macos/</link><guid isPermaLink="true">https://moderngitacademy.com/git/install-git-macos/</guid><description>Install Git on macOS using Xcode Command Line Tools or Homebrew, understand which binary you are running, and configure identity and credentials.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner</category></item><item><title>Getting Started 7: Your First Git Repository: A Complete Hands-On Tutorial</title><link>https://moderngitacademy.com/git/first-git-repository/</link><guid isPermaLink="true">https://moderngitacademy.com/git/first-git-repository/</guid><description>Create a repository, stage a file, make commits, read the log and diff your changes — a full hands-on walkthrough that explains every command.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner</category></item><item><title>Getting Started 8: Understanding the Git Working Tree</title><link>https://moderngitacademy.com/git/working-tree/</link><guid isPermaLink="true">https://moderngitacademy.com/git/working-tree/</guid><description>The working tree is the checkout you edit. Learn tracked, untracked, modified, deleted and ignored files, and how git status reads them.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner</category></item><item><title>Getting Started 9: Understanding the Git Index (the Staging Area)</title><link>https://moderngitacademy.com/git/git-index/</link><guid isPermaLink="true">https://moderngitacademy.com/git/git-index/</guid><description>The index is a real file that holds the next commit&apos;s exact content. Learn what it stores, why Git has one, and how partial staging works.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner → Intermediate</category></item><item><title>Getting Started 10: Understanding HEAD in Git</title><link>https://moderngitacademy.com/git/head/</link><guid isPermaLink="true">https://moderngitacademy.com/git/head/</guid><description>HEAD is a symbolic reference to your current branch. Learn how it moves, what detached HEAD means, and how HEAD~ and HEAD^ navigate history.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Beginner → Intermediate</category></item><item><title>Getting Started 11: Git Objects Explained: Blobs, Trees, Commits and Tags</title><link>https://moderngitacademy.com/git/git-objects/</link><guid isPermaLink="true">https://moderngitacademy.com/git/git-objects/</guid><description>Git stores everything as four object types in a content-addressable database. Explore blobs, trees, commits and tags with real plumbing commands.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Intermediate</category></item><item><title>Getting Started 12: Git Repository Structure: What Is Inside the .git Directory</title><link>https://moderngitacademy.com/git/git-repository-structure/</link><guid isPermaLink="true">https://moderngitacademy.com/git/git-repository-structure/</guid><description>A guided tour of a real .git directory — HEAD, config, index, objects, refs, logs, hooks and packed-refs — and which of them are conditional.</description><category>Git Fundamentals</category><category>Getting Started</category><category>Intermediate</category></item><item><title>Branching 1: Git Branches Explained: How Branching Really Works</title><link>https://moderngitacademy.com/workflows/branching/git-branches/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/git-branches/</guid><description>A Git branch is a movable reference to a commit, not a copy of your project. Learn how branches, HEAD and remote-tracking refs actually work.</description><category>Modern Git Workflows</category><category>Branching</category><category>Beginner → Intermediate</category></item><item><title>Branching 2: Feature Branch Workflow: A Practical Guide</title><link>https://moderngitacademy.com/workflows/branching/feature-branch-workflow/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/feature-branch-workflow/</guid><description>Develop each change on its own branch, review it, then integrate. A complete walkthrough of the feature branch workflow and its failure modes.</description><category>Modern Git Workflows</category><category>Branching</category><category>Beginner → Intermediate</category></item><item><title>Branching 3: GitHub Flow: A Practical Guide for Modern Teams</title><link>https://moderngitacademy.com/workflows/branching/github-flow/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/github-flow/</guid><description>GitHub Flow is a lightweight branch-and-pull-request workflow built for continuous delivery. Here is how it works and where its limits are.</description><category>Modern Git Workflows</category><category>Branching</category><category>Beginner → Intermediate</category></item><item><title>Branching 4: Git Flow Explained: Workflow, Branches, Pros and Cons</title><link>https://moderngitacademy.com/workflows/branching/git-flow/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/git-flow/</guid><description>Git Flow uses develop, release and hotfix branches around main. Learn the model, why it was designed, and why many teams no longer use it.</description><category>Modern Git Workflows</category><category>Branching</category><category>Intermediate</category></item><item><title>Branching 5: Trunk-Based Development with Git</title><link>https://moderngitacademy.com/workflows/branching/trunk-based-development/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/trunk-based-development/</guid><description>Trunk-based development keeps everyone integrating into one branch continuously. Learn the practices and the engineering maturity it requires.</description><category>Modern Git Workflows</category><category>Branching</category><category>Intermediate</category></item><item><title>Branching 6: Short-Lived Branches: Why Integration Frequency Matters</title><link>https://moderngitacademy.com/workflows/branching/short-lived-branches/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/short-lived-branches/</guid><description>The longer a branch lives, the more it diverges from what it must integrate with. Learn why branch lifetime drives merge pain.</description><category>Modern Git Workflows</category><category>Branching</category><category>Beginner → Intermediate</category></item><item><title>Branching 7: Release Branches: Stabilising and Shipping a Version</title><link>https://moderngitacademy.com/workflows/branching/release-branches/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/release-branches/</guid><description>Release branches freeze a version for stabilisation while development continues. Learn when they earn their complexity and when they do not.</description><category>Modern Git Workflows</category><category>Branching</category><category>Intermediate</category></item><item><title>Branching 8: How to Choose a Git Branching Strategy</title><link>https://moderngitacademy.com/workflows/branching/choosing-a-branching-strategy/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/branching/choosing-a-branching-strategy/</guid><description>Compare feature branches, GitHub Flow, Git Flow and trunk-based development against your team size, release model and CI maturity.</description><category>Modern Git Workflows</category><category>Branching</category><category>Intermediate</category></item><item><title>Merging 1: Git Merge Explained: Fast-Forward, Three-Way and Conflicts</title><link>https://moderngitacademy.com/workflows/merging/git-merge/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/merging/git-merge/</guid><description>Merging combines two histories by finding their merge base and reconciling both sets of changes. A complete guide to how git merge works.</description><category>Modern Git Workflows</category><category>Merging</category><category>Beginner → Intermediate</category></item><item><title>Merging 2: Fast-Forward vs Three-Way Merge in Git</title><link>https://moderngitacademy.com/workflows/merging/fast-forward-vs-three-way-merge/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/merging/fast-forward-vs-three-way-merge/</guid><description>Whether Git can fast-forward depends entirely on ancestry. Learn the difference, the flags that control it, and which to prefer when.</description><category>Modern Git Workflows</category><category>Merging</category><category>Intermediate</category></item><item><title>Merging 3: Merge Commits in Git: Parents, Topology and Trade-offs</title><link>https://moderngitacademy.com/workflows/merging/merge-commits/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/merging/merge-commits/</guid><description>A merge commit is the only commit with more than one parent. Learn what that buys you, what it costs, and how reverting one differs.</description><category>Modern Git Workflows</category><category>Merging</category><category>Beginner → Intermediate</category></item><item><title>Merging 4: Squash Merging in Git: What It Does to Your History</title><link>https://moderngitacademy.com/workflows/merging/squash-merging/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/merging/squash-merging/</guid><description>Squash merging collapses a branch into a single commit. Learn how git merge --squash differs from GitHub&apos;s squash button, and the trade-offs.</description><category>Modern Git Workflows</category><category>Merging</category><category>Beginner → Intermediate</category></item><item><title>Merging 5: Rebase and Merge: Linear History Without Merge Commits</title><link>https://moderngitacademy.com/workflows/merging/rebase-and-merge/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/merging/rebase-and-merge/</guid><description>Rebase-and-merge replays each commit onto the target branch. Learn what it does to commit IDs, authorship and history, and when to choose it.</description><category>Modern Git Workflows</category><category>Merging</category><category>Intermediate</category></item><item><title>Merging 6: Resolving Merge Conflicts in Git: A Practical Guide</title><link>https://moderngitacademy.com/workflows/merging/resolving-merge-conflicts/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/merging/resolving-merge-conflicts/</guid><description>Conflicts happen when both sides change the same region. Learn to read conflict markers, resolve them safely, and verify the result.</description><category>Modern Git Workflows</category><category>Merging</category><category>Intermediate</category></item><item><title>Merging 7: Advanced Git Merge Strategies: ort, Options and Merge Drivers</title><link>https://moderngitacademy.com/workflows/merging/advanced-merge-strategies/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/merging/advanced-merge-strategies/</guid><description>Beyond the default: merge strategies versus strategy options, rename detection, octopus and ours merges, and custom merge drivers.</description><category>Modern Git Workflows</category><category>Merging</category><category>Intermediate → Advanced</category></item><item><title>Rebasing 1: Git Rebase Explained: How Rewriting History Works</title><link>https://moderngitacademy.com/workflows/rebasing/git-rebase/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/rebasing/git-rebase/</guid><description>Rebase replays your commits onto a new base, creating new commits with new IDs. Learn the mechanism, the conflict loop and the safety rules.</description><category>Modern Git Workflows</category><category>Rebasing</category><category>Intermediate</category></item><item><title>Rebasing 2: Interactive Rebase in Git: Reshape Your Commit History</title><link>https://moderngitacademy.com/workflows/rebasing/interactive-rebase/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/rebasing/interactive-rebase/</guid><description>Interactive rebase lets you reword, reorder, squash, split and drop commits before review. A hands-on guide to the todo list and its commands.</description><category>Modern Git Workflows</category><category>Rebasing</category><category>Intermediate → Advanced</category></item><item><title>Rebasing 3: How to Reorder Commits in Git</title><link>https://moderngitacademy.com/workflows/rebasing/reordering-commits/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/rebasing/reordering-commits/</guid><description>Reordering commits means rewriting them. Learn how to reorder safely with interactive rebase, handle dependencies, and recover if it goes wrong.</description><category>Modern Git Workflows</category><category>Rebasing</category><category>Intermediate</category></item><item><title>Rebasing 4: How to Squash Commits in Git</title><link>https://moderngitacademy.com/workflows/rebasing/squashing-commits/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/rebasing/squashing-commits/</guid><description>Combine several commits into one with interactive rebase. Learn squash versus fixup, autosquash, and when granular commits are worth keeping.</description><category>Modern Git Workflows</category><category>Rebasing</category><category>Intermediate</category></item><item><title>Rebasing 5: Editing Git Commit History Safely</title><link>https://moderngitacademy.com/workflows/rebasing/editing-commit-history/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/rebasing/editing-commit-history/</guid><description>Amend, rebase, revert and reset do different things. A decision framework for changing history, plus recovery when an edit goes wrong.</description><category>Modern Git Workflows</category><category>Rebasing</category><category>Intermediate → Advanced</category></item><item><title>Rebasing 6: Rebase vs Merge: Choosing an Integration Strategy</title><link>https://moderngitacademy.com/workflows/rebasing/rebase-vs-merge/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/rebasing/rebase-vs-merge/</guid><description>Rebase and merge produce different histories with different trade-offs for auditing, debugging and collaboration. A decision guide, not a verdict.</description><category>Modern Git Workflows</category><category>Rebasing</category><category>Intermediate</category></item><item><title>Rebasing 7: When Not to Rebase in Git</title><link>https://moderngitacademy.com/workflows/rebasing/when-not-to-rebase/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/rebasing/when-not-to-rebase/</guid><description>Rebasing shared history creates work for everyone else. Learn the situations where rebasing is the wrong tool, and the nuanced exceptions.</description><category>Modern Git Workflows</category><category>Rebasing</category><category>Intermediate</category></item><item><title>Modern Git Productivity 1: Git Worktrees: Work on Multiple Branches at Once</title><link>https://moderngitacademy.com/workflows/productivity/git-worktrees/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/git-worktrees/</guid><description>A worktree gives one repository a second checked-out directory. Learn to create, list, move, lock and remove worktrees, and when they beat cloning.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate</category></item><item><title>Modern Git Productivity 2: Multiple Branches Without Multiple Clones</title><link>https://moderngitacademy.com/workflows/productivity/multiple-branches-without-multiple-clones/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/multiple-branches-without-multiple-clones/</guid><description>You need two branches checked out at once. Compare re-cloning, stashing and worktrees, then set up the worktree solution step by step.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate</category></item><item><title>Modern Git Productivity 3: Git Sparse Checkout: Work with Part of a Repository</title><link>https://moderngitacademy.com/workflows/productivity/git-sparse-checkout/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/git-sparse-checkout/</guid><description>Sparse checkout controls which tracked paths populate your working tree. Learn cone mode, the commands, and how it differs from partial clone.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate → Advanced</category></item><item><title>Modern Git Productivity 4: Git Partial Clone Explained</title><link>https://moderngitacademy.com/workflows/productivity/partial-clone/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/partial-clone/</guid><description>Partial clone defers downloading objects until they are needed. Learn filters, promisor remotes, lazy fetching and where the trade-offs bite.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate → Advanced</category></item><item><title>Modern Git Productivity 5: Git Shallow Clone: Limiting History Depth</title><link>https://moderngitacademy.com/workflows/productivity/shallow-clone/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/shallow-clone/</guid><description>A shallow clone truncates commit history to a depth you choose. Learn where it helps, what breaks, and how to deepen or unshallow later.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate</category></item><item><title>Modern Git Productivity 6: Git Hooks: Automate Your Git Workflow</title><link>https://moderngitacademy.com/workflows/productivity/git-hooks/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/git-hooks/</guid><description>Hooks run your scripts at defined points in Git&apos;s operations. Learn the useful hooks, how to share them with a team, and their enforcement limits.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate → Advanced</category></item><item><title>Modern Git Productivity 7: Git Aliases: Faster, Clearer Git Commands</title><link>https://moderngitacademy.com/workflows/productivity/git-aliases/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/git-aliases/</guid><description>Aliases turn long Git invocations into short ones. Learn simple and shell aliases, quoting, scope, and a curated set worth adopting.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate</category></item><item><title>Modern Git Productivity 8: Git Maintenance: Keeping Repositories Fast</title><link>https://moderngitacademy.com/workflows/productivity/git-maintenance/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/git-maintenance/</guid><description>Git repacks and prunes itself automatically, and git maintenance can schedule more. Learn the tasks, when to intervene, and when not to.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate → Advanced</category></item><item><title>Modern Git Productivity 9: Git Configuration: Scopes, Precedence and Settings</title><link>https://moderngitacademy.com/workflows/productivity/git-configuration/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/git-configuration/</guid><description>Git reads configuration from several files in a defined order. Learn the scopes, precedence, conditional includes and the settings worth changing.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate → Advanced</category></item><item><title>Modern Git Productivity 10: Git Credential Managers: Secure Authentication</title><link>https://moderngitacademy.com/workflows/productivity/git-credential-managers/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/git-credential-managers/</guid><description>Git delegates authentication to credential helpers. Learn how the subsystem works, which helper to use, and why plaintext storage is a poor choice.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate</category></item><item><title>Modern Git Productivity 11: Signed Commits in Git: GPG, SSH and Verification</title><link>https://moderngitacademy.com/workflows/productivity/signed-commits/</link><guid isPermaLink="true">https://moderngitacademy.com/workflows/productivity/signed-commits/</guid><description>Signing attaches a cryptographic signature to a commit or tag. Learn GPG and SSH signing, verification, and precisely what a signature does not prove.</description><category>Modern Git Workflows</category><category>Modern Git Productivity</category><category>Intermediate → Advanced</category></item></channel></rss>