Follow the life of a change.
Every command lives where it acts. A file is born in the working tree, gets copied into the index, sealed into a commit, then travels to a remote. Tap any command to watch it work under the hood.
Setup
birth of a repo
Working Tree
files on disk
Index · Staging
your next commit
Repository
objects + refs · history
Remote
origin · another machine
Setup
birth of a repo
Working Tree
files on disk
Index · Staging
your next commit
Repository
objects + refs · history
Remote
origin · another machine
git statuswhat changed?
git diffshow the changes
git restorebring files back
git stashpark changes ✱
git cleandelete untracked
files on disk
git commitwrite the snapshot
git branchnew pointer
git checkoutjump + rebuild
git switchchange branches
git mergejoin histories
git rebasereplay + linearize
git logread history
git showopen an object
git blamewho made each line
git reflogjournal of HEAD
git gcsweep dead objects
git resetrewind refs
git revertinverse commit
git cherry-pickcopy a commit
git tagpin a milestone
objects + refs · history
git clonefetch + checkout
git remotebookmark URLs
git fetchdownload, don't touch
git pullfetch + merge ↓
git pushupload + advance ↑
origin · another machine
Staged
Copied into the index — next commit's content.
Modified
Differs from the index, not yet staged.
Untracked
Never seen by git — new or ignored-worthy.