Git Worktrees - Parallel Development Workflow
Enable parallel feature development by creating isolated git worktree directories, then executing the same plan across multiple workspaces simultaneously.
Workflow Overview
Phase 1: Prepare Worktrees
Create N isolated worktrees for parallel development:
Create worktree directory
mkdir -p trees
Create worktrees (example: 3 parallel workspaces)
git worktree add -b feature-1 ./trees/feature-1 git worktree add -b feature-2 ./trees/feature-2 git worktree add -b feature-3 ./trees/feature-3
Verify worktrees
git worktree list
Each worktree is a complete, isolated copy of the codebase. All worktrees share git history but have independent working directories.
Phase 2: Execute Tasks in Parallel
Launch N subagents (one per worktree) using the Task tool:
-
Each agent independently implements the plan in their workspace
-
Agents produce RESULTS.md summarising their changes
-
Compare results and cherry-pick the best implementation
Example Task invocation:
Use the Task tool to launch a general-purpose agent with:
- prompt: "Working in trees/feature-1, implement [plan]. Write a RESULTS.md summarising changes."
- run_in_background: true (for parallel execution)
When to Use
-
Experimental implementations - Compare different approaches
-
A/B testing code changes - Try multiple solutions simultaneously
-
Reducing iteration time - Run multiple attempts in parallel
-
Complex refactoring - Test different strategies concurrently
Best Practices
-
Keep worktree count reasonable (2-4) to manage cognitive load
-
Focus on code changes only - No tests during parallel execution
-
Clean up worktrees after selecting the winning implementation: git worktree remove ./trees/feature-1 git worktree prune
-
Cherry-pick the winner to your main branch: git cherry-pick feature-2
or merge the branch
git merge feature-2
Directory Structure
project/ ├── trees/ │ ├── feature-1/ # Worktree 1 (full codebase copy) │ │ └── RESULTS.md │ ├── feature-2/ # Worktree 2 (full codebase copy) │ │ └── RESULTS.md │ └── feature-3/ # Worktree 3 (full codebase copy) │ └── RESULTS.md └── (main working directory)
RESULTS.md Template
Each agent should produce a summary in this format:
Results - [Feature Name]
Changes Made
- List of files modified/created
- Summary of approach taken
Key Decisions
- Design choices made
- Trade-offs considered
Testing Notes
- How to verify the implementation
- Known limitations