Tecnología · GUÍA PRÁCTICA
¿Git dice que la rama ya está en otro worktree? Demuestra el propietario antes de podar o forzar
Lista todos los worktrees, conserva trabajo sin commit o push y distingue un propietario vivo de una ruta movida, sin montar o ausente antes de remove, repair, prune, detach u otra rama.

Git impide extraer la misma rama en varios worktrees porque ambos directorios moverían la misma referencia. La ruta del error prueba un propietario registrado; no autoriza borrarla.
Empieza con un inventario porcelain y revisa el árbol nombrado. prune es para directorios ausentes, repair para enlaces movidos y remove para retirar deliberadamente un worktree.
1. Inventaría propietarios registrados
Ejecuta git worktree list --porcelain desde un árbol sano y registra rutas, HEAD, rama, razón de bloqueo y marca prunable. Resuelve la ruta exacta antes de tocar .git/worktrees.
Registra el comando fallido y si la herramienta ya completó la acción remota. Un PR puede estar fusionado aunque la limpieza local choque con la protección.
2. Inspecciona ruta y trabajo
Si el directorio existe, ejecuta status e inspecciona commits no alcanzables desde base o remoto. Conserva parches, archivos no seguidos e IDs antes de quitarlo.
No deduzcas seguridad de nombres como temp, agent o build. Un árbol bloqueado o viejo puede contener trabajo no publicado o estar temporalmente sin montar.
3. Clasifica vivo, movido, sin montar o ausente
El propietario vivo debe seguir moviendo esa rama. Un directorio movido externamente requiere repair; una ruta portátil o de red puede estar bloqueada y temporalmente ausente.
Clasifica como ausente solo tras probar que no está desmontada, renombrada o inaccesible. Previsualiza con git worktree prune --dry-run --verbose.
4. Aplica solo el remedio correcto
Para un árbol limpio que ya no necesitas usa git worktree remove path; para mover usa move y tras un movimiento externo usa repair.
Para lectura paralela usa detached HEAD u otra rama. Usa force solo después de documentar qué estado sucio o bloqueado perderías.
5. Verifica un propietario y el resultado
Repite la lista porcelain y confirma que la rama aparece en el único propietario previsto. Reintenta solo el paso local fallido, no un merge o push remoto ya exitoso.
Termina con status y alcance de commits en el árbol conservado. Registra ruta propietaria, referencia, commits preservados y si cambió metadata, directorio o estado del wrapper.
