git-worktree

Manage Git worktrees for concurrent local development. Creates worktrees at ~/.worktrees/REPO/BRANCH. Wrapper for the `wt` CLI.

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" with this command: npx skills add fairchild/dotclaude/fairchild-dotclaude-git-worktree

Git Worktree

Manage worktrees for concurrent development without clobbering changes.

Setup

~/.claude/skills/git-worktree/scripts/wt.sh install
source ~/.zshrc

Usage

wt <branch>              # Create worktree, run setup, open editor
wt <branch> --base ref   # Create from a specific base branch (default: main)
wt <branch> --no-editor  # Create without opening editor
wt <branch> --open       # Also open terminal tab with claude session (macOS)
wt <branch> --carry      # Create and copy work-in-progress files
wt <branch> --context f  # Copy file to .context/handoff.md (session fork)
wt cd <branch>           # Change to worktree directory
wt home                  # Return to main repo (or REPOS_ROOT if outside git)
wt apply [branch]        # Rebase onto branch and merge (default: main)
wt apply --archive       # Merge and archive without prompting
wt apply --push          # Merge and push to remote
wt archive [branch]      # Run archive script, move to ~/.worktrees/.archive
wt list                  # List all worktrees
wt ls                    # Alias for list
wt tree                  # Tree view with git status indicators
wt status                # Show worktrees with Claude session activity
wt open [branch]         # Open editor for worktree (current dir if no branch)
wt install               # Add wt to ~/.zshrc (one-time setup)

Worktree Path Convention

Worktrees are created at ~/.worktrees/<repo>/<branch> where <repo> is the origin remote name (not the local directory name). This is derived from git remote get-url origin.

~/.claude  (remote: dotclaude.git)  →  ~/.worktrees/dotclaude/<branch>
~/code/services  (remote: services.git)  →  ~/.worktrees/services/<branch>

Environment

WORKTREES_ROOT=~/.worktrees  # Where worktrees are created
REPOS_ROOT=~/code            # Fallback for `wt home` outside git
WT_TERMINAL=ghostty          # Terminal for --open (auto-detects from TERM_PROGRAM)

Example

wt feature-auth       # Creates worktree and opens editor
# ... work on feature ...
wt apply              # Merge into main (prompts to archive)

Or with the traditional archive workflow:

wt feature-auth       # Creates worktree and opens editor
# ... work on feature ...
wt home               # Back to main repo
wt archive feature-auth  # Archive when done (moves to .archive)

Carrying Work in Progress

When you've been exploring and decide it should be its own branch:

# You're in main with untracked files and modifications...
wt feature-x --carry  # Creates worktree with those files copied over

Copies both untracked files and modified tracked files. Works from any branch.

conductor.json (Optional)

If your repo has a conductor.json, scripts run automatically:

{
  "scripts": {
    "setup": "cp $CONDUCTOR_ROOT_PATH/.env .env && bun install",
    "archive": "git stash"
  }
}

For Claude Code

When user asks to create a worktree, run:

wt <branch>

The script handles branch detection, env file copying, and setup automatically. Suggest opening the worktree in their editor after creation.

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.

General

backlog

No summary provided by upstream source.

Repository SourceNeeds Review
General

skills-manager

No summary provided by upstream source.

Repository SourceNeeds Review
General

youtube-content

No summary provided by upstream source.

Repository SourceNeeds Review