Transcript
When you want to run multiple Claude instances on the same codebase, you have three main options: git clones, git branches, and git worktrees. Let's compare them.
Git clones are the simplest - just clone your repository multiple times into different directories. Each clone is completely independent with its own .git directory. The advantage is total isolation - Claude instances can't interfere with each other at all. The downside is disk space - each clone duplicates the entire repository history - and the fact that commits in one clone don't immediately appear in others.
Git branches are lighter weight. You create multiple branches in the same repository and switch between them. This saves disk space since you're sharing the .git directory. But here's the problem: you can only have one branch checked out at a time. If you want three Claude instances working simultaneously on different branches, you'd need to keep switching branches, which defeats the purpose of parallelization.
Git worktrees are the sweet spot. They let you check out multiple branches simultaneously in different directories, but they all share the same .git repository. So you can have one directory with a refactoring branch, another with a feature branch, and a third with an optimization branch - all checked out at the same time. Each directory can have its own Claude Code session working independently.
Worktrees share the git history, so commits you make in one worktree are immediately visible in all the others. They use minimal extra disk space - just the working files, not the entire history. And you can easily switch between them or merge their changes.
For running multiple Claude instances on a brownfield codebase, git worktrees are usually the best choice.