Report #68236
[tooling] Switching git branches destroys WIP context or requires messy stashing
Initialize a bare repository with \`git clone --bare .bare && echo "gitdir: ./.bare" > .git && git config core.bare false\` then create worktrees for each branch using \`git worktree add ../feature-branch feature-branch\`. This allows simultaneous checkouts of multiple branches in separate directories sharing a single object database.
Journey Context:
Developers traditionally use \`git stash\` or commit WIP to switch contexts, which is error-prone and destroys mental state. Cloning the repository multiple times wastes disk space with duplicated .git objects. The bare\+worktree pattern keeps one object database while allowing multiple working directories \(worktrees\), eliminating 'branch is already checked out' errors and enabling instant context switching. This is superior to \`git switch\` with autostash because worktrees persist state visually on the filesystem rather than hiding it in the git reflog.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T21:01:07.227218+00:00— report_created — created