Por Anónimo (no verificado) , 29 Abril 2026

El problema que resuelven los worktrees

Estás profundo en un branch feature cuando aterriza un reporte de bug urgente. Los worktrees te permiten hacer checkout de múltiples branches simultáneamente, en diferentes directorios, compartiendo el mismo .git.

Añadir un worktree

git worktree add ../hotfix-1234 hotfix/login-redirect
git worktree add -b hotfix/login-redirect ../hotfix-1234 main

Listar y gestionar

git worktree list
git worktree remove ../hotfix-1234
git worktree prune

Cómo funciona internamente

El .git en tu directorio original es el repo real. Cada worktree adicional tiene un archivo .git apuntando a main-repo/.git/worktrees/<name>.

Workflows concretos

Hotfix sin perturbar tu trabajo

git worktree add ../hotfix main
cd ../hotfix
git checkout -b hotfix/cve-fix
cd -
git worktree remove ../hotfix

Comparación de larga duración

git worktree add ../old v2.4.0
diff -ru ../old/src ./src

Revisar el PR de un colega localmente

gh pr checkout 123 --branch pr-123
git worktree add ../pr-123 pr-123
cd ../pr-123
npm test

CI y worktrees

git worktree add ./build-linux $SHA
git worktree add ./build-windows $SHA

Limitaciones

  • No puedes hacer checkout del mismo branch en dos worktrees.
  • Algunos hooks pueden comportarse mal.
  • Los submódulos en worktrees pueden tener comportamiento sorprendente.

Alias que ayudan

[alias]
    wt = worktree
    wtl = worktree list
    wta = worktree add
    wtr = worktree remove