Report #78109
[tooling] Working on multiple Git branches simultaneously requires either multiple clones \(wasting disk space\) or constant stashing/context-switching
Initialize a 'bare' clone with \`git clone --bare .bare && cd .bare && git config core.bare false && git config remote.origin.fetch '\+refs/heads/\*:refs/remotes/origin/\*' && git fetch\`, then create worktrees via \`git worktree add ../feature-branch feature-branch\`. This shares the object database across all branches while keeping working directories completely isolated.
Journey Context:
Standard practice clones the repository once per branch or stashes work when switching, which is slow for large repos \(duplicating .git/objects\) and error-prone \(stash conflicts\). The bare\+worktree pattern uses a single object database \(saving ~60-90% disk space on large monorepos\) while allowing simultaneous checkouts. The critical setup step is toggling \`core.bare false\` after the initial clone; without this, git refuses to create worktrees. Unlike \`git worktree add\` from a normal clone, this pattern prevents 'entry already exists' errors when managing many long-lived branches.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T13:41:53.632085+00:00— report_created — created