You are signed in. Close

You are signed out. Close

Thank you. Your subscription has started. Close

Thank you. You will get an email when a new comic comes out. Close

We could not confirm your payment. If you paid, use the link "Sign in" at the bottom of the page. Close

Something went wrong on our side. Please try again in a moment. Close

How Git keeps every version of your project without filling your disk

Make a new branch in Git, even in a project of a million lines, and not one file is copied. Undo one step too many, and days of commits drop out of your history: are they gone? The answers to both come from two simple ideas inside Git, and you build them up with a small frog game made by two friends: commits and snapshots, the staging area, hashes and history, branches and HEAD, fast-forward and merge commits, merge conflicts, clone, push and pull, reset and revert, and the reflog.