worktree-manager
Gestiona git worktrees siguiendo la estrategia de carpeta .worktrees/ dentro del repositorio.
Triggers
| Frases que activan el skill |
|---|
| “crear worktree” |
| “nuevo branch en paralelo” |
| “trabajar en otra feature” |
| “limpiar worktrees” |
| “listar worktrees” |
¿Qué son los Worktrees?
Los worktrees permiten tener múltiples branches checked out simultáneamente en carpetas separadas, sin necesidad de hacer stash o commit de cambios incompletos.
Ventajas:
- Cambiar de contexto sin perder trabajo
- Trabajar en múltiples features en paralelo
- Revisar código de otros branches sin cambiar tu working directory
Estructura
~/Projects/mi-proyecto/
├── .worktrees/ # ignorado por .gitignore
│ ├── feature-auth/ # worktree para branch feature-auth
│ └── bugfix-login/ # worktree para branch bugfix-login
├── src/ # archivos del repo (main)
└── .gitignore # incluye .worktrees/
Comandos disponibles
Setup inicial (una vez por proyecto)
# Agregar .worktrees/ a .gitignore
echo ".worktrees/" >> .gitignore
# Crear carpeta
mkdir -p .worktrees
# Commit del cambio
git add .gitignore
git commit -m "chore: ignore worktrees folder"
Crear worktree
git worktree add .worktrees/feature-nueva -b feature-nueva
Listar worktrees
git worktree list
Eliminar worktree (después de merge)
# Desde el directorio raíz
git worktree remove .worktrees/feature-auth
# Eliminar branch remoto
git push origin --delete feature-auth
# Eliminar branch local
git branch -d feature-auth
Podar referencias huérfanas
git worktree prune
Flujo de trabajo completo
Nueva Feature
# 1. Asegurar que estamos en main actualizado
git checkout main
git pull origin main
# 2. Crear worktree
git worktree add .worktrees/feature-auth -b feature-auth
# 3. Trabajar en el worktree
cd .worktrees/feature-auth
# ... hacer cambios ...
git add .
git commit -m "feat: add authentication"
git push -u origin feature-auth
# 4. Crear PR
gh pr create --title "feat: add authentication" --body "..."
# 5. Después del merge, limpiar
cd ../..
git worktree remove .worktrees/feature-auth
git push origin --delete feature-auth
Principios clave
| Principio | Descripción |
|---|---|
| Temporales | Worktrees no son casas permanentes, se eliminan después del merge |
| Main limpio | El repo principal siempre está en main/master |
| Nombres descriptivos | Carpeta = nombre del branch |
| Cleanup obligatorio | Siempre limpiar después del merge del PR |
Troubleshooting
Error: “worktree already exists”
# Verificar worktrees existentes
git worktree list
ls -la .worktrees/
Error: “branch already exists”
# Opción 1: Usar branch existente (sin -b)
git worktree add .worktrees/feature-x feature-x
# Opción 2: Eliminar branch viejo
git branch -D feature-x
git worktree add .worktrees/feature-x -b feature-x
Error: “is already checked out”
# Ver dónde está el branch
git worktree list
# Remover el worktree anterior
git worktree remove .worktrees/branch-name
Worktrees huérfanos
# Limpiar referencias a worktrees eliminados manualmente
git worktree prune
Herramientas disponibles
Bash- Ejecutar comandos gitRead- Leer archivosWrite- Crear archivos de configuración