Git worktree permite mantener varios directorios de trabajo vinculados a un único repositorio, de modo que cada rama se desarrolla en su propia carpeta sin tener que alternar entre ellas con git checkout ni recurrir constantemente a git stash. Cada worktree comparte la base de datos de objetos de Git y se comporta como un checkout independiente: se editan archivos, se commitea y se hace push como en cualquier flujo habitual.
Una limitación clave es que la misma rama no puede estar activa en dos worktrees a la vez, lo que fomenta la correspondencia «una tarea, una rama, un directorio» y reduce la confusión al saltar entre contextos. Esto resulta especialmente útil cuando un hotfix urgente interrumpe una funcionalidad en curso: el desarrollador puede preparar un worktree adicional, corregir el fallo y seguir iterando en la otra rama sin perder el avance.
Fusionar los cambios de un worktree sigue el procedimiento estándar de Git: se finaliza el trabajo en la rama del worktree, se va al directorio principal, se hace checkout de la rama destino y se ejecuta git merge. Para inspeccionar los worktrees activos existe git worktree list, mientras que git worktree remove elimina un directorio de trabajo limpio y git worktree prune limpia metadatos obsoletos, con la opción --expire para fijar un periodo de antigüedad.
Disponible desde Git 2.5, esta funcionalidad reorganiza el flujo de trabajo al mantener cada línea de trabajo compartimentada, disminuye el cambio de contexto y vuelve excepcional el uso de stash. Para tareas secuenciales simples, el branching tradicional sigue siendo suficiente, pero cuando se necesita trabajar en paralelo, worktree ofrece una alternativa ordenada.
