# Modern Git Academy > Master Git. Engineer on GitHub. Automate Everything. Modern Git Academy teaches how Git actually works — the working tree, index, HEAD, objects and refs — plus GitHub, CI/CD, security and AI-assisted engineering. Modern Git Academy is a technical education and reference site covering Git, GitHub, GitHub Actions, Git security, DevSecOps, GitOps, GitHub Copilot and AI-assisted development. Content is written as a sequential curriculum: each lesson teaches both the commands to run and the model that explains why they behave the way they do. Canonical URL: https://moderngitacademy.com/ ## Currently published 2 pillars, 45 lessons. Every page listed below contains complete tutorial content; no placeholder or "coming soon" pages are indexed. The intended progression is Git Fundamentals, then Modern Git Workflows. ## Git Fundamentals - [Git Fundamentals](https://moderngitacademy.com/git/): Learn Git from first principles — commits, branches, refs, objects, the working tree and the index — through a 12-lesson curriculum that explains why Git behaves as it does. ### Getting Started (12 lessons) - [What Is Git? A Practical Guide to Version Control](https://moderngitacademy.com/git/what-is-git/): 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. - [Git vs GitHub: What's the Difference?](https://moderngitacademy.com/git/git-vs-github/): 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. - [How Git Works: Working Tree, Index, HEAD and Objects](https://moderngitacademy.com/git/how-git-works/): A complete walkthrough of Git's data model: the working tree, the index, the object database, refs, and what git add and git commit really do. - [How to Install Git on Ubuntu (and Configure It Properly)](https://moderngitacademy.com/git/install-git-ubuntu/): Install Git on Ubuntu with apt, verify the version, and configure identity, default branch, editor and credentials across all three config scopes. - [How to Install Git on Windows: Git for Windows, winget and Setup](https://moderngitacademy.com/git/install-git-windows/): Install Git on Windows with winget or the official installer, then configure line endings, the credential manager, default branch and your editor. - [How to Install Git on macOS: Xcode Tools, Homebrew and Setup](https://moderngitacademy.com/git/install-git-macos/): Install Git on macOS using Xcode Command Line Tools or Homebrew, understand which binary you are running, and configure identity and credentials. - [Your First Git Repository: A Complete Hands-On Tutorial](https://moderngitacademy.com/git/first-git-repository/): Create a repository, stage a file, make commits, read the log and diff your changes — a full hands-on walkthrough that explains every command. - [Understanding the Git Working Tree](https://moderngitacademy.com/git/working-tree/): The working tree is the checkout you edit. Learn tracked, untracked, modified, deleted and ignored files, and how git status reads them. - [Understanding the Git Index (the Staging Area)](https://moderngitacademy.com/git/git-index/): The index is a real file that holds the next commit's exact content. Learn what it stores, why Git has one, and how partial staging works. - [Understanding HEAD in Git](https://moderngitacademy.com/git/head/): HEAD is a symbolic reference to your current branch. Learn how it moves, what detached HEAD means, and how HEAD~ and HEAD^ navigate history. - [Git Objects Explained: Blobs, Trees, Commits and Tags](https://moderngitacademy.com/git/git-objects/): Git stores everything as four object types in a content-addressable database. Explore blobs, trees, commits and tags with real plumbing commands. - [Git Repository Structure: What Is Inside the .git Directory](https://moderngitacademy.com/git/git-repository-structure/): A guided tour of a real .git directory — HEAD, config, index, objects, refs, logs, hooks and packed-refs — and which of them are conditional. ## Modern Git Workflows - [Modern Git Workflows](https://moderngitacademy.com/workflows/): Learn how modern engineering teams structure branches, integrate changes, rewrite local history safely, resolve conflicts and use advanced Git features at any repository scale. ### Branching (8 lessons) - [Git Branching Workflows](https://moderngitacademy.com/workflows/branching/): Branches are a simple Git data structure; branching strategy is an engineering decision. Compare feature branches, GitHub Flow, Git Flow and trunk-based development. - [Git Branches Explained: How Branching Really Works](https://moderngitacademy.com/workflows/branching/git-branches/): 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. - [Feature Branch Workflow: A Practical Guide](https://moderngitacademy.com/workflows/branching/feature-branch-workflow/): Develop each change on its own branch, review it, then integrate. A complete walkthrough of the feature branch workflow and its failure modes. - [GitHub Flow: A Practical Guide for Modern Teams](https://moderngitacademy.com/workflows/branching/github-flow/): GitHub Flow is a lightweight branch-and-pull-request workflow built for continuous delivery. Here is how it works and where its limits are. - [Git Flow Explained: Workflow, Branches, Pros and Cons](https://moderngitacademy.com/workflows/branching/git-flow/): 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. - [Trunk-Based Development with Git](https://moderngitacademy.com/workflows/branching/trunk-based-development/): Trunk-based development keeps everyone integrating into one branch continuously. Learn the practices and the engineering maturity it requires. - [Short-Lived Branches: Why Integration Frequency Matters](https://moderngitacademy.com/workflows/branching/short-lived-branches/): The longer a branch lives, the more it diverges from what it must integrate with. Learn why branch lifetime drives merge pain. - [Release Branches: Stabilising and Shipping a Version](https://moderngitacademy.com/workflows/branching/release-branches/): Release branches freeze a version for stabilisation while development continues. Learn when they earn their complexity and when they do not. - [How to Choose a Git Branching Strategy](https://moderngitacademy.com/workflows/branching/choosing-a-branching-strategy/): Compare feature branches, GitHub Flow, Git Flow and trunk-based development against your team size, release model and CI maturity. ### Merging (7 lessons) - [Git Merging](https://moderngitacademy.com/workflows/merging/): How independent histories are integrated, and why merge policy shapes your history, code review, debugging and release process. - [Git Merge Explained: Fast-Forward, Three-Way and Conflicts](https://moderngitacademy.com/workflows/merging/git-merge/): Merging combines two histories by finding their merge base and reconciling both sets of changes. A complete guide to how git merge works. - [Fast-Forward vs Three-Way Merge in Git](https://moderngitacademy.com/workflows/merging/fast-forward-vs-three-way-merge/): Whether Git can fast-forward depends entirely on ancestry. Learn the difference, the flags that control it, and which to prefer when. - [Merge Commits in Git: Parents, Topology and Trade-offs](https://moderngitacademy.com/workflows/merging/merge-commits/): 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. - [Squash Merging in Git: What It Does to Your History](https://moderngitacademy.com/workflows/merging/squash-merging/): Squash merging collapses a branch into a single commit. Learn how git merge --squash differs from GitHub's squash button, and the trade-offs. - [Rebase and Merge: Linear History Without Merge Commits](https://moderngitacademy.com/workflows/merging/rebase-and-merge/): 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. - [Resolving Merge Conflicts in Git: A Practical Guide](https://moderngitacademy.com/workflows/merging/resolving-merge-conflicts/): Conflicts happen when both sides change the same region. Learn to read conflict markers, resolve them safely, and verify the result. - [Advanced Git Merge Strategies: ort, Options and Merge Drivers](https://moderngitacademy.com/workflows/merging/advanced-merge-strategies/): Beyond the default: merge strategies versus strategy options, rename detection, octopus and ours merges, and custom merge drivers. ### Rebasing (7 lessons) - [Git Rebasing](https://moderngitacademy.com/workflows/rebasing/): Rebasing reconstructs commit history. Learn the mental model, the safety rules for shared branches, and how to reshape a branch before review. - [Git Rebase Explained: How Rewriting History Works](https://moderngitacademy.com/workflows/rebasing/git-rebase/): Rebase replays your commits onto a new base, creating new commits with new IDs. Learn the mechanism, the conflict loop and the safety rules. - [Interactive Rebase in Git: Reshape Your Commit History](https://moderngitacademy.com/workflows/rebasing/interactive-rebase/): Interactive rebase lets you reword, reorder, squash, split and drop commits before review. A hands-on guide to the todo list and its commands. - [How to Reorder Commits in Git](https://moderngitacademy.com/workflows/rebasing/reordering-commits/): Reordering commits means rewriting them. Learn how to reorder safely with interactive rebase, handle dependencies, and recover if it goes wrong. - [How to Squash Commits in Git](https://moderngitacademy.com/workflows/rebasing/squashing-commits/): Combine several commits into one with interactive rebase. Learn squash versus fixup, autosquash, and when granular commits are worth keeping. - [Editing Git Commit History Safely](https://moderngitacademy.com/workflows/rebasing/editing-commit-history/): Amend, rebase, revert and reset do different things. A decision framework for changing history, plus recovery when an edit goes wrong. - [Rebase vs Merge: Choosing an Integration Strategy](https://moderngitacademy.com/workflows/rebasing/rebase-vs-merge/): Rebase and merge produce different histories with different trade-offs for auditing, debugging and collaboration. A decision guide, not a verdict. - [When Not to Rebase in Git](https://moderngitacademy.com/workflows/rebasing/when-not-to-rebase/): Rebasing shared history creates work for everyone else. Learn the situations where rebasing is the wrong tool, and the nuanced exceptions. ### Modern Git Productivity (11 lessons) - [Modern Git Productivity](https://moderngitacademy.com/workflows/productivity/): Worktrees, sparse checkout, partial and shallow clones, hooks, aliases, maintenance, configuration, credentials and commit signing. - [Git Worktrees: Work on Multiple Branches at Once](https://moderngitacademy.com/workflows/productivity/git-worktrees/): A worktree gives one repository a second checked-out directory. Learn to create, list, move, lock and remove worktrees, and when they beat cloning. - [Multiple Branches Without Multiple Clones](https://moderngitacademy.com/workflows/productivity/multiple-branches-without-multiple-clones/): You need two branches checked out at once. Compare re-cloning, stashing and worktrees, then set up the worktree solution step by step. - [Git Sparse Checkout: Work with Part of a Repository](https://moderngitacademy.com/workflows/productivity/git-sparse-checkout/): Sparse checkout controls which tracked paths populate your working tree. Learn cone mode, the commands, and how it differs from partial clone. - [Git Partial Clone Explained](https://moderngitacademy.com/workflows/productivity/partial-clone/): Partial clone defers downloading objects until they are needed. Learn filters, promisor remotes, lazy fetching and where the trade-offs bite. - [Git Shallow Clone: Limiting History Depth](https://moderngitacademy.com/workflows/productivity/shallow-clone/): A shallow clone truncates commit history to a depth you choose. Learn where it helps, what breaks, and how to deepen or unshallow later. - [Git Hooks: Automate Your Git Workflow](https://moderngitacademy.com/workflows/productivity/git-hooks/): Hooks run your scripts at defined points in Git's operations. Learn the useful hooks, how to share them with a team, and their enforcement limits. - [Git Aliases: Faster, Clearer Git Commands](https://moderngitacademy.com/workflows/productivity/git-aliases/): Aliases turn long Git invocations into short ones. Learn simple and shell aliases, quoting, scope, and a curated set worth adopting. - [Git Maintenance: Keeping Repositories Fast](https://moderngitacademy.com/workflows/productivity/git-maintenance/): Git repacks and prunes itself automatically, and git maintenance can schedule more. Learn the tasks, when to intervene, and when not to. - [Git Configuration: Scopes, Precedence and Settings](https://moderngitacademy.com/workflows/productivity/git-configuration/): Git reads configuration from several files in a defined order. Learn the scopes, precedence, conditional includes and the settings worth changing. - [Git Credential Managers: Secure Authentication](https://moderngitacademy.com/workflows/productivity/git-credential-managers/): Git delegates authentication to credential helpers. Learn how the subsystem works, which helper to use, and why plaintext storage is a poor choice. - [Signed Commits in Git: GPG, SSH and Verification](https://moderngitacademy.com/workflows/productivity/signed-commits/): Signing attaches a cryptographic signature to a commit or tag. Learn GPG and SSH signing, verification, and precisely what a signature does not prove. ## Planned pillars The following areas are part of the site's long-term scope but have no published content yet, and therefore have no URLs: GitHub Engineering, GitHub Actions, Git Security, DevOps + Git, AI + Git, Labs, Reference and Troubleshooting. ## Site pages - [About Modern Git Academy](https://moderngitacademy.com/about/): Why Modern Git Academy exists, how its lessons are researched and written, and what the site covers now and next. - [Contact](https://moderngitacademy.com/contact/): How to reach Modern Git Academy about corrections, technical errors in lessons, or content suggestions. - [Privacy Policy](https://moderngitacademy.com/privacy/): What Modern Git Academy does and does not collect. A plain-language description of this static site's actual data practices. - [Terms of Use](https://moderngitacademy.com/terms/): The terms under which the educational content and code examples published on Modern Git Academy are made available. ## Machine-readable resources - [Sitemap](https://moderngitacademy.com/sitemap-index.xml) - [RSS feed](https://moderngitacademy.com/rss.xml) - [Content manifest](https://moderngitacademy.com/content-manifest.json) - [robots.txt](https://moderngitacademy.com/robots.txt)