---
name: Git Worktrees Setup
slug: git-worktrees-setup
category: DevOps
description: Git Worktrees Setup creates an isolated git worktree for feature work. It selects a workspace location, checks .gitignore safety, installs dependencies, runs a baseline test, and reports readiness.
github: "https://github.com/LerianStudio/ring/tree/main/default/skills/creating-worktrees"
language: HTML
stars: 210
forks: 27
install: "npx degit https://github.com/LerianStudio/ring/tree/main/default/skills/creating-worktrees ~/.claude/skills/creating-worktrees"
installs_to: ~/.claude/skills/creating-worktrees
source_path: default/skills/creating-worktrees/SKILL.md
collection_size: 25
category_size: 920
collection_url: "https://dirskills.com/collections/LerianStudio/ring"
added: 2026-09-04T05:26:24.829Z
last_synced: 2026-09-04T05:26:24.829Z
canonical_url: "https://dirskills.com/skills/git-worktrees-setup"
---

# Git Worktrees Setup

Git Worktrees Setup creates an isolated git worktree for feature work. It selects a workspace location, checks .gitignore safety, installs dependencies, runs a baseline test, and reports readiness.

**Install:**

```bash
npx degit https://github.com/LerianStudio/ring/tree/main/default/skills/creating-worktrees ~/.claude/skills/creating-worktrees
```

## README

# Using Git Worktrees

## When to use
- Starting feature that needs isolation from main workspace
- Before executing implementation plan
- Working on multiple features simultaneously

## Skip when
- Quick fix in current branch → stay in place
- Already in isolated worktree for this feature → continue
- Repository doesn't use worktrees → use standard branch workflow

## Sequence
**Runs before:** ring:writing-plans

Git worktrees create isolated workspaces sharing the same repository for parallel branch work.

**Announce at start:** "Using ring:creating-worktrees skill to set up isolated workspace."

## Directory Selection (priority order)

1. Existing `.worktrees/` or `worktrees/` directory
2. CLAUDE.md preference (`grep -i "worktree.*director" CLAUDE.md`)
3. Ask user: `.worktrees/` (project-local, hidden) OR `~/.config/ring/worktrees/<project>/` (global)

```bash
ls -d .worktrees worktrees 2>/dev/null
```

## Safety Verification

**Project-local directories only:** Verify `.gitignore` before creating:

```bash
grep -q "^\.worktrees/$\|^worktrees/$" .gitignore
```

Not in `.gitignore` → add it → commit → proceed. (Prevents accidentally tracking worktree contents.)

**Global directory** (`~/.config/ring/worktrees`): No verification needed.

## Creation Steps

```bash
# 1. Detect project name
project=$(basename "$(git rev-parse --show-toplevel)")

# 2. Create worktree
git worktree add "$path" -b "$BRANCH_NAME" && cd "$path"

# 3. Auto-detect and run setup
[ -f package.json ] && npm install
[ -f Cargo.toml ] && cargo build
[ -f requirements.txt ] && pip install -r requirements.txt
[ -f pyproject.toml ] && poetry install
[ -f go.mod ] && go mod download

# 4. Verify clean baseline
npm test / cargo test / pytest / go test ./...
```

**If tests fail:** Report failures, ask whether to proceed.  
**If tests pass:** Report: `Worktree ready at <path> | Tests passing (<N> tests) | Ready to implement <feature>`

## Quick Reference

| Situation | Action |
|-----------|--------|
| `.worktrees/` exists | Use it (verify .gitignore) |
| Both `.worktrees/` and `worktrees/` exist | Use `.worktrees/` |
| Neither exists | Check CLAUDE.md → ask user |
| Directory not in .gitignore | Add immediately + commit |
| Tests fail during baseline | Report failures + ask |

## Non-Negotiables

- Project-local directories MUST be in .gitignore before creation
- Baseline test verification REQUIRED before proceeding with work
- Directory selection MUST follow priority order
- Dependency installation MUST run (auto-detect from project files)

## Integration

Pairs with **finishing-a-development-branch** for cleanup and **ring:running-dev-cycle** for work.
