Tecnología · GUÍA PRÁCTICA
¿Falta la ruta de un Git worktree? Repara o bloquea antes de prune
La ruta ausente puede estar movida, temporalmente fuera de línea o realmente eliminada. Conserva HEAD e index por worktree, clasifica y elige repair, lock o prune.

Una ruta registrada ausente es un estado ambiguo, no permiso para borrar metadatos. El mismo síntoma puede ser una carpeta movida, un recurso sin montar o un worktree realmente descartado.
Conserva la administración por worktree y los archivos accesibles antes de limpiar. Después elige una sola vía: reparar un traslado, bloquear almacenamiento intermitente o podar solo un registro probado como obsoleto.
1. Congela la evidencia antes de limpiar
Desde un worktree sano ejecuta git worktree list --porcelain -z y guarda path, HEAD, branch, locked y prunable. Resuelve el Git común y el directorio administrativo afectado; registra hashes de gitdir, HEAD e index y copia ese directorio con Git quieto.
Conserva también la carpeta accesible y archivos sin seguimiento. La punta de rama es historia compartida, pero los cambios no preparados viven en la carpeta y el estado preparado en el index específico.
2. Clasifica la ruta ausente
Si la carpeta existe en otro lugar, está movida. Si depende de unidad portátil, red o montaje temporal, está fuera de línea. Solo está eliminada cuando el responsable confirma que tampoco necesita el trabajo sin commit.
No uses prune para descubrir. Un back-pointer absoluto incorrecto puede hacer parecer obsoleto un worktree vivo entre contenedor y host.
3. Repara traslados y bloquea rutas intermitentes
Pasa la nueva ruta del linked worktree a repair y compara gitdir, HEAD y rama con la evidencia.
Bloquea el almacenamiento intermitente con una razón mientras sea accesible. locked evita prune; desbloquea solo tras volver la ruta y funcionar una orden Git normal.
4. Acepta la reparación con el estado preparado
Repite status y git diff --cached, comprueba la rama o detached HEAD y lee un objeto Git normal. No sobrescribas la copia de evidencia antes de aceptar.
En la prueba Git 2.51.1, mover la carpeta marcó prunable el registro antiguo y el dry-run propuso borrarlo. repair conservó un archivo añadido al index; con lock previo, la ausencia simulada no fue candidata a prune.
5. Poda solo un registro obsoleto demostrado
Tras probar que ya no sirve, usa --dry-run --verbose, vincula cada candidato al registro de evidencia y luego limpia. Mientras exista la ruta, prefiere worktree remove.
Si ya se podó, detén más limpieza y conserva archivos, objetos compartidos y reflogs. fsck informa objetos, pero no es un botón de deshacer automático.
