Git worktree es una función de Git que crea copias de trabajo adicionales de un repositorio en directorios separados. Cada worktree puede estar en una rama diferente, pero todas comparten el mismo historial de commits y objetos de Git. Esto permite trabajar en varias ramas al mismo tiempo sin necesidad de clonar el repositorio varias veces.

Como funciona

Cuando creas un worktree con el comando git worktree add, Git crea un nuevo directorio con los archivos de la rama elegida. Ese directorio es una copia de trabajo independiente: puedes editar, compilar y probar sin afectar a otros worktrees. Por debajo, todos los worktrees apuntan al mismo repositorio .git, por lo que los commits realizados en uno aparecen en los otros.

La ventaja es ahorro de espacio y tiempo. En lugar de clonar todo el repositorio para cada rama, creas worktrees livianos que comparten objetos. Cuando terminas el trabajo en un worktree, basta con eliminarlo con git worktree remove.

Exemplo prático

Un desarrollador necesita revisar un pull request mientras continúa trabajando en la feature actual. En lugar de hacer stash o clonar el repositorio, crea un worktree para la rama del PR. Los dos trabajos quedan aislados en directorios diferentes y ambos pueden compilarse y probarse al mismo tiempo.

En el contexto de agentes de código, los worktrees son especialmente útiles. Cada agente puede recibir su propio worktree para trabajar en una tarea sin sobrescribir el código de los demás. Esto evita conflictos y permite ejecutar varios agentes en paralelo en el mismo proyecto.

Para que serve

Git worktree permite un paralelismo real en el desarrollo. En bridgecode, cada agente de un squad puede operar en un worktree aislado, ejecutando y probando cambios sin interferir en el código de los otros agentes. Esto hace que la orquestación de agentes sea más segura y trazable.