git-worktree-workflow

Git Worktree Workflow Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "git-worktree-workflow" with this command: npx skills add vamseeachanta/workspace-hub/vamseeachanta-workspace-hub-git-worktree-workflow

Git Worktree Workflow Skill

Version: 1.1.0 Created: 2025-12-30 Last Updated: 2026-01-02 Category: Development

Overview

Git worktrees allow you to have multiple working directories from a single repository, enabling parallel development workflows with Claude Code. This is essential for running multiple Claude instances on different tasks simultaneously.

Quick Start

1. Create worktree for new feature branch

git worktree add -b feature-api ../project-api main

2. Run Claude in worktree

cd ../project-api && claude "Implement the feature"

3. After completion, merge and cleanup

cd ../project git merge feature-api git worktree remove ../project-api git branch -d feature-api

When to Use

  • Running multiple Claude agents on different features

  • Testing changes while continuing development

  • Code review with live comparison

  • Parallel bug fixes across branches

  • Subagent verification workflows

  • A/B implementation comparisons

  • CI/CD parallel job execution

Concepts

What is a Worktree?

Main repo: /project (on main branch) Worktree 1: /project-feature-a (on feature-a branch) Worktree 2: /project-feature-b (on feature-b branch) Worktree 3: /project-hotfix (on hotfix branch)

All share the same .git directory but have independent working directories.

Basic Commands

Create a Worktree

Create worktree for existing branch

git worktree add ../project-feature feature-branch

Create worktree with new branch

git worktree add -b new-feature ../project-new-feature main

Create worktree for detached HEAD (testing)

git worktree add --detach ../project-test HEAD

List Worktrees

git worktree list

Output:

/project abc1234 [main]

/project-feature def5678 [feature-a]

/project-hotfix ghi9012 [hotfix-123]

Remove Worktree

Remove after merging

git worktree remove ../project-feature

Force remove (discards changes)

git worktree remove --force ../project-abandoned

Prune stale worktrees

git worktree prune

Parallel Claude Workflows

Pattern 1: Feature + Review

Run development and review in parallel:

Terminal 1: Development Claude

cd /project-feature claude "Implement the new authentication module"

Terminal 2: Review Claude

cd /project claude "Review the authentication changes in feature-auth branch"

Pattern 2: Multi-Feature Development

Work on multiple features simultaneously:

Setup worktrees

git worktree add -b feature-api ../project-api main git worktree add -b feature-ui ../project-ui main git worktree add -b feature-tests ../project-tests main

Run Claude in each (separate terminals)

cd ../project-api && claude "Build REST API endpoints" cd ../project-ui && claude "Create React components" cd ../project-tests && claude "Write integration tests"

Pattern 3: Subagent Verification

Main Claude spawns verification in separate worktree:

Main Claude working in /project

Creates verification worktree:

git worktree add --detach ../project-verify HEAD

Spawns subagent to verify:

cd ../project-verify && claude -p "Verify the implementation works correctly"

Pattern 4: A/B Implementation

Compare two approaches:

Create two worktrees from same point

git worktree add -b approach-a ../project-a main git worktree add -b approach-b ../project-b main

Different Claude instances try different solutions

cd ../project-a && claude "Implement caching using Redis" cd ../project-b && claude "Implement caching using Memcached"

Compare results

diff -r ../project-a/src ../project-b/src

Best Practices

Do

  • Use descriptive naming convention: <project>-<purpose>

  • Create worktrees in sibling directories (not inside project)

  • Commit or stash changes before removing worktrees

  • Prune stale worktrees regularly

  • Document active worktrees in team communication

  • Clean up merged worktrees promptly

Don't

  • Create worktrees inside the main project directory

  • Leave uncommitted changes in worktrees before removal

  • Forget to merge/push changes from worktrees

  • Create excessive worktrees (manage actively)

  • Use worktrees for long-lived branches (use separate clones)

  • Skip the cleanup step after merging

Naming Convention

Pattern: <project>-<purpose>

../project-feature-auth # Feature work ../project-hotfix-123 # Bug fix ../project-review # Code review ../project-test # Testing ../project-experiment # Experiments

Workspace Organization

/workspace/ ├── project/ # Main development ├── project-feature-a/ # Active features ├── project-feature-b/ ├── project-review/ # Review worktree └── project-archive/ # Completed features (before cleanup)

Cleanup Script

#!/bin/bash

cleanup-worktrees.sh

Remove merged branches

git branch --merged main | grep -v main | while read branch; do worktree=$(git worktree list | grep "$branch" | awk '{print $1}') if [ -n "$worktree" ]; then echo "Removing worktree: $worktree" git worktree remove "$worktree" fi done

Prune stale references

git worktree prune

Integration with Claude Code

CLAUDE.md Configuration

Add to project CLAUDE.md:

Worktree Workflow

When running parallel tasks:

  1. Create worktree: git worktree add -b &#x3C;branch> ../&#x3C;project>-&#x3C;purpose> main
  2. Work in isolated directory
  3. Commit changes normally
  4. Return to main and merge
  5. Remove worktree: git worktree remove ../&#x3C;worktree>

Headless Mode in Worktrees

Automate worktree operations

WORKTREE="../project-auto-$(date +%s)" git worktree add -b auto-task "$WORKTREE" main

cd "$WORKTREE" claude -p "Complete the task in task.md" --output result.md

Collect results

cp result.md ../results/ git worktree remove "$WORKTREE"

Error Handling

Error Cause Solution

Branch already checked out Branch exists in another worktree Remove existing worktree or use different branch

Cannot remove worktree Uncommitted changes present Commit, stash, or force remove

Permission errors Directory not writable chmod -R u+w <worktree> then remove

Stale worktree references Worktree directory deleted manually Run git worktree prune

Lock file exists Previous operation interrupted Remove .git/worktrees/<name>/locked file

Path already exists Directory exists at target path Choose different path or remove existing directory

Advanced: CI/CD Integration

GitHub Actions Parallel Jobs

jobs: parallel-claude: strategy: matrix: task: [lint, test, security] steps: - uses: actions/checkout@v4

  - name: Create worktree
    run: |
      git worktree add -b ${{ matrix.task }} ../work-${{ matrix.task }}

  - name: Run Claude task
    run: |
      cd ../work-${{ matrix.task }}
      claude -p "Run ${{ matrix.task }} analysis"

Execution Checklist

Step Command Verification

Create worktree git worktree add -b <branch> <path> main

git worktree list shows new entry

Navigate to worktree cd <path>

pwd shows worktree path

Run Claude task claude "<task>"

Task completes successfully

Commit changes git add . && git commit -m "message"

git log shows commit

Return to main cd <main-project>

pwd shows main path

Merge changes git merge <branch>

git log shows merge

Remove worktree git worktree remove <path>

git worktree list excludes entry

Delete branch git branch -d <branch>

git branch excludes branch

Prune stale git worktree prune

No stale references remain

Metrics

Metric Target Description

Worktree Creation Time <5s Time to create new worktree

Parallel Efficiency

80% CPU utilization across worktrees

Cleanup Rate 100% Worktrees removed after merge

Branch Isolation 100% No cross-worktree conflicts

Merge Success Rate

95% Clean merges without conflicts

Related Skills

  • repo-sync - Manage multiple repositories

  • sparc-workflow - Systematic development process

  • agent-orchestration - Multi-agent coordination

Version History

  • 1.1.0 (2026-01-02): Added Quick Start, Error Handling table, Metrics, Execution Checklist, Best Practices Do/Don't, updated frontmatter with version/category/related_skills

  • 1.0.0 (2025-12-30): Initial release based on Claude Code best practices

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

yaml-workflow-executor

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

agent-os-framework

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

agenta

No summary provided by upstream source.

Repository SourceNeeds Review