
Introduction
As a developer exploring the integration of AI agents like Claude, Gemini CLI, and ChatGPT into my daily workflow, I recently discovered a powerful but often overlooked Git feature: git worktree.
At first, it sounded like one of those «cool but unnecessary» Git features. But once I started working with AI agents in parallel to my codebase, its value became crystal clear. With git worktree, I can:
- Be fixing bugs on one branch,
- Start developing a new feature from another,
- Test code or prototype with an AI assistant in a clean folder,
- And even chat with an agent about unit tests, all simultaneously—without losing my current work context.
It has fundamentally changed how I multitask across code, branches, and intelligent tools.
What Is git worktree?
git worktree lets you check out multiple branches at the same time, in separate directories, all pointing to the same Git repository. It’s an elegant solution to a common problem: context-switching.
Instead of stashing changes or creating multiple clones of the same repo, git worktree allows you to spawn lightweight, isolated working folders, each bound to a specific branch.
Why this matters:
When you collaborate with multiple AI tools—each requiring different input contexts or codebases—git worktree becomes your best productivity ally.
Why Git Worktree Is a Game-Changer with AI Agents
Here’s what the AI-assisted development world looks like today (just one example):
- Claude helps you refactor complex business logic.
- Gemini CLI works side-by-side to generate or verify tests.
- ChatGPT acts as your debugging buddy.
Each agent thrives in a focused environment. git worktree enables that by letting you isolate and work in distinct contexts—while still staying inside the same Git project.
Setting Up Git Worktree (Step-by-Step)
✅ 1. Create a worktree from an existing branch
git worktree add ../feature-x feature-x
This checks out feature-x into a new folder called ../feature-x.
✅ 2. Create a worktree and new branch at once
git worktree add ../refactor-logging -b refactor-logging main
This will:
- Create a new branch called
refactor-loggingfrommain - Place it in a folder
../refactor-logging - Automatically check it out for you
✅ 3. List all current worktrees
git worktree list
✅ 4. Remove a worktree when done
git worktree remove ../refactor-logging
Real-World Use Cases
Here’s how I use git worktree daily with AI:
| Branch | Task | AI Agent |
|---|---|---|
/main | Base branch for releases | — |
/feature/migration | Work in parallel while Claude helps refactor code | Claude Code |
/task/unit-testing | Run isolated test experiments | Gemini CLI |
/bugfix/header | Debug and fix UI bugs | ChatGPT and/or by myself |
🧠 This allows me to keep one AI tool per worktree, one task per branch, and zero context loss.
Best Practices
- 🧼 Don’t mix unrelated tasks in one worktree.
- 🧑💻 Use one terminal or IDE instance per worktree.
- 🪪 Be careful on Windows: If you run your terminal as Administrator, Git Fork or other tools under your normal user may face permission issues with the new worktree folders.
- 🗑️ Remember: removing a worktree does not delete the branch or commits.
- 🚀 Add shortcuts or aliases for common commands like
git worktree add,remove, andlist.
Conclusion
Git worktree is the perfect match for today’s multitasking developer—especially those working with AI coding assistants.
Whether you’re:
- Fixing bugs in
main - Developing a new feature with Claude
- Generating tests with Gemini
- Or reviewing code side-by-side with ChatGPT
You can now keep all these workflows active without breaking focus or losing state.
Once you start using git worktree, it’s hard to imagine working without it !.