Git Worktree
Última actualización
git worktree permite que un mismo repositorio tenga varios directorios de trabajo a la vez, cada uno en una rama diferente. En lugar de guardar tu trabajo con stash para cambiar de rama, consultas la otra rama en una carpeta separada - revisa un PR, ejecuta un hotfix o compila una rama mientras editas otra, todo compartiendo el mismo historial .git.
Prueba esto en el terminal playground - un shell real en tu navegador, sin nada que instalar.
Sintaxis
| Command | What it does |
|---|---|
git worktree add ../hotfix hotfix | Consulta hotfix en una carpeta hermana |
git worktree add -b new ../new | Crea una rama y un worktree para ella |
git worktree list | Lista todos los worktrees y sus ramas |
git worktree remove ../hotfix | Elimina un worktree |
git worktree prune | Limpia las entradas de worktree obsoletas |
Ejemplo práctico
Corrige un error en main sin alterar tu rama de funcionalidad.
| Step | Command | Result |
|---|---|---|
| 1 | git worktree add ../fix main | main consultada en ../fix |
| 2 | Corrige y confirma en ../fix | Hotfix hecho en main |
| 3 | git worktree remove ../fix | Limpieza; la rama de funcionalidad quedó intacta |
Preguntas frecuentes sobre git worktree
¿Qué es un git worktree?
Un worktree es un directorio de trabajo adicional asociado al mismo repositorio, consultado en una rama o commit diferente. Te permite tener varias ramas consultadas al mismo tiempo en carpetas separadas, todas compartiendo un único historial
.git - así no tienes que hacer stash ni clonar para trabajar en dos ramas a la vez.¿Cómo añado un worktree?
Ejecuta
git worktree add <path> <branch>, por ejemplo git worktree add ../hotfix hotfix. Git consulta esa rama en la nueva carpeta. Para crear una rama nueva al mismo tiempo, usa git worktree add -b <newbranch> <path>.¿Cuándo debería usar un worktree en lugar de cambiar de rama?
Úsalo cuando cambiar de rama sería disruptivo - tienes trabajo sin confirmar, una compilación larga que no quieres interrumpir, o necesitas comparar dos ramas lado a lado. Un worktree te da la otra rama en su propia carpeta sin tocar la actual.
¿Cómo elimino un worktree?
Ejecuta
git worktree remove <path>. Si la carpeta se eliminó manualmente, ejecuta git worktree prune para limpiar el registro obsoleto. No puedes eliminar el worktree principal (la carpeta original del repositorio), solo los adicionales que añadiste.¿Puedo practicar esto en línea?
Sí. Abre el terminal playground para ejecutar
git worktree en un shell real en tu navegador - sin nada que instalar. El curso interactivo y gratuito de Git de Coddy también cubre los flujos de trabajo de ramas paso a paso.