Git Worktrees
SkillDev toolsCreates isolated git worktrees for parallel development. Use when starting
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Git Worktrees skill
What this skill tells your AI
The instructions your AI receives, as published by alexei-led/cc-thingz in src/skills/using-git-worktrees/SKILL.md and read by ahel’s review.
Use one sibling worktree root per project: <project>.worktrees/<branch-slug>. Keep the main worktree clean on the integration branch by default. Trivial solo one-liners may stay in the main worktree when a worktree would add pointless ceremony.
Treat a worktree as a disposable branch folder. Remove it and its branch after the PR merges.
Scope
Use this skill when:
- starting a feature, fix, or experiment that should not disturb current work
- working on multiple branches at once
- trying competing approaches
- the current worktree has uncommitted changes and the user wants to start something else
Do not use this skill for:
- simple branch switching with no parallel work
- bulk branch or stale worktree cleanup — use
cleanup-git - git hook, Gitleaks,
.gitignore, or config setup — useconfiguring-git-hygiene
Create Workflow
Check state before any git worktree add:
git status --short
git branch --show-current
git worktree list
If the current worktree is dirty, ask whether to commit, stash, or proceed anyway. Do not stash silently.
Use the helper when available:
scripts/setup-worktree.sh <branch> [--base <ref>]
The helper creates <project>.worktrees/<branch-slug> from the main worktree root, handles existing local/remote branches, refuses path conflicts, and refuses dirty state unless --allow-dirty is passed after user approval.
Manual fallback lives in workflow.md.
Naming
- Root: sibling
<project>.worktrees/directory. - Directory: branch slug only; replace
/with-. - Examples:
fix-cron,feature-auth,bugfix-issue-123.
Cleanup Workflow
For one named worktree after PR merge:
scripts/cleanup-worktree.sh [branch]
The helper refuses unless gh confirms the PR is MERGED. Pass --force only after the user confirms the merge without gh or confirms the branch should be abandoned.
For bulk cleanup, stale worktrees, gone upstreams, or merged local branches, use cleanup-git.
Do not run git pull as part of cleanup. Pull the integration branch only after confirming the main worktree is checked out and clean.
Failure Handling
- Worktree path exists: pick a different branch/slug; never overwrite.
- Branch already exists remotely: check it out without
-bor use the helper. - Dirty current worktree: ask to commit, stash, or continue with explicit approval.
git worktree removefails because the worktree is dirty: confirm before--force.git branch -dfails after squash/rebase PR merge: confirm the PR isMERGED, then use-D.- Invoked from inside the worktree being removed: change to the main worktree before removing it.
Output
WORKTREE READY
==============
Action: CREATE | CLEANUP
Branch: <branch>
Path: <project>.worktrees/<slug>
Status: DONE | BLOCKED
Next:
- cd <path> and open the editor there, or
- pull the integration branch yourself after confirmed cleanup
For cleanup, report DONE only when the PR is confirmed MERGED or --force was used deliberately. Otherwise report BLOCKED with the script's reason.
References
- workflow.md — manual fallback and edge cases
- scripts/ —
setup-worktree.shandcleanup-worktree.sh
Signals
- GitHub stars
- 35
- Forks
- 5
- Last commit
- Sep 2026
ahel recommends instead
Advanced
- Catalog kind
- skill
- Gateway key
using-git-worktrees-alexei-led- Source
- github.com/alexei-led/cc-thingz