git worktree

Espacios de trabajo y proyectos grandes

Extraer varias ramas a la vez en carpetas separadas


El comando 'git worktree' da a un repositorio varias carpetas de trabajo. Cada carpeta tiene una rama distinta extraída, con sus propios archivos y área de preparación, mientras el historial se comparte. Es la alternativa al stash cuando debes cambiar de tarea: abre la rama urgente en otra carpeta y deja intacto tu trabajo en curso. Una rama solo puede estar extraída en una carpeta a la vez.

Sinopsis

git worktree add [-b <new-branch>] <path> [<commit-ish>]
git worktree list
git worktree remove <worktree>
git worktree prune
[ ] opcional| o<arg> valor a sustituir... repetible--flag opción

Opciones

Haz clic en una opción para desplegarla

Principiante (3)

Lista todas las carpetas de trabajo con su commit y su rama.

RecomendadoSaber qué rama está abierta dónde

Ejemplo

git worktree list

Borra una carpeta de trabajo (no debe tener cambios sin confirmar salvo con --force).

RecomendadoLa forma limpia de borrar un worktree

Ejemplo

git worktree remove ../hotfix

Olvida los worktrees cuyas carpetas se borraron a mano.

Cuando haga faltaLimpiar tras borrar una carpeta a mano

Ejemplo

git worktree prune

Elegir la opción adecuada

Cambiar de tarea

Tres formas

ComandoTus edicionesCarpetas
git stash + switchApartadas y luego restauradasUna
git commit (WIP) + switchEn un commit temporalUna
git worktree addIntactoDos

Ejemplos

Rama nueva en una carpeta nueva

git worktree add ../hotfix -b hotfix

Carpeta ../hotfix en una rama nueva.


Rama existente

git worktree add ../review feature/login

Revisar una rama sin dejar la tuya.


Listar

git worktree list

Cada carpeta con su rama.


Quitar

git worktree remove ../hotfix

Borrar la carpeta extra.

Ejemplos de flujos de trabajo

1
git worktree add ../hotfix -b hotfix main

Abrir main en una carpeta nueva

2
cd ../hotfix

Arreglar, confirmar y subir allí

3
git worktree remove ../hotfix

Limpiar al terminar

Solución de problemas

fatal: 'hotfix' is already used by worktree

Causa: Esa rama está extraída en otra carpeta

Trabaja en esa carpeta, o quita antes el worktree

Consejos y trampas

Buenas prácticas

  • ✓Pon los worktrees junto a la carpeta principal (../nombre), no dentro.

Errores comunes

  • ✗Borrar a mano una carpeta de worktree — usa git worktree remove (o prune después).
  • ✗Intentar extraer la misma rama en dos carpetas.

Preguntas frecuentes

A:

Sí: un repositorio, un historial; solo difieren los archivos extraídos.