worktree
Manage git worktrees for the current repository. Use when asked to create a worktree, set up parallel development, work on multiple branches simultaneously, or manage existing worktrees. Triggers on phrases like "create worktree", "new worktree", "parallel branch", "list worktrees", or "remove worktree".
When & Why to Use This Skill
This Claude skill streamlines Git worktree management, enabling developers to maintain multiple working directories for a single repository. It facilitates seamless parallel development, allowing you to switch between branches, run concurrent dev servers, and manage complex workflows without the overhead of constant stashing or cloning. By automating worktree creation, listing, and removal, it optimizes local development environments for better productivity and context management.
Use Cases
- Parallel Feature Development: Work on multiple features simultaneously in separate directories to avoid the overhead of frequent context-switching and stashing.
- Urgent Hotfix Handling: Quickly spin up a dedicated worktree to fix critical production bugs without disturbing your current development progress or uncommitted changes.
- Side-by-Side Testing: Run and test different branches or specific commits concurrently to compare UI changes, performance metrics, or logic differences side-by-side.
- Dependency Isolation: Maintain isolated environment setups (e.g., different node_modules) for various branches to prevent version conflicts and reduce re-installation time during branch swaps.
| name | worktree |
|---|---|
| description | Manage git worktrees for the current repository. Use when asked to create a worktree, set up parallel development, work on multiple branches simultaneously, or manage existing worktrees. Triggers on phrases like "create worktree", "new worktree", "parallel branch", "list worktrees", or "remove worktree". |
Git Worktree Management
Manage git worktrees for parallel development.
What Are Worktrees?
Git worktrees let you have multiple working directories from the same repo, each on a different branch. This enables running parallel dev servers, working on multiple features, or testing changes side-by-side.
Commands
All commands should be run from the main repository directory or use the repo path.
List Worktrees
git worktree list
Create New Worktree with New Branch
# Creates a new branch from the base branch and checks it out in the new worktree
git worktree add -b <new-branch-name> <path> <base-branch>
# Example: Create ../myrepo-feature on new branch "feature-xyz" based on master
git worktree add -b feature-xyz ../myrepo-feature master
Create Worktree from Existing Branch
git worktree add <path> <existing-branch>
# Example
git worktree add ../myrepo-hotfix hotfix-branch
Create Detached Worktree (same commit, no branch)
git worktree add --detach <path> <commit-or-branch>
Remove Worktree
git worktree remove <path>
Prune Stale Worktree Info
git worktree prune
Workflow
Creating a worktree:
- Ask user for branch name and optional directory path
- Default path convention:
../<repo-name>-<identifier>(sibling to main repo) - Determine if creating new branch or using existing
- Create the worktree
- Remind user to install dependencies in the new directory
After creation, inform user:
Worktree created at <path> on branch <branch> Next steps: cd <path> <package-manager> installListing worktrees:
- Show all current worktrees with their branches and paths
- Indicate which is the main worktree (bare)
Removing worktrees:
- First list current worktrees
- Confirm with user which to remove
- Run the remove command
- Optionally prune if needed
Important Notes
- The same branch cannot be checked out in multiple worktrees
- Each worktree needs its own dependency installation (
yarn install,npm install, etc.) - Worktrees share the same
.gitdirectory (saves disk space) - Use
--detachflag to create a worktree at a specific commit without a branch - Worktree paths are typically siblings to the main repo (e.g.,
../repo-feature)