Normally one repo = one working directory on one branch. A worktree lets a single repo have multiple working directories, each on a different branch, all sharing the same .git/ object database.
git worktree add ../hotfix hotfix/critical
Now ../hotfix exists as a fully working checkout of the hotfix/critical branch, while your original directory stays on whatever you were doing. Edit and commit in either freely — they share history but have independent indexes and working files.
Why this beats stashing: no context loss, no stash juggling, your editor's open tabs stay put, and a long test run in one tree doesn't block work in the other.
Commands:
git worktree list — show all worktrees.
git worktree remove <path> — clean up when done.
The same branch can't be checked out in two worktrees simultaneously (Git refuses, to prevent confusion).