Leí un post de un compañero sobre usar git worktrees con un agente de IA para trabajar en data transformations y me hizo pensar un montón. Mi primera reacción fue: ¿para qué quiero reventarme la cabeza con varios worktrees abiertos a la vez? Ya me cuesta suficiente mantener el foco en lo que estoy haciendo, apropiarme de lo que construyo, entenderlo de verdad… como para fragmentarme en dos o tres contextos diferentes.
Y entonces tuve una iluminación. Aleluya.
No se trata de trabajar en proyectos completamente diferentes. Se trata de que, cuando lanzas tus tests en un Docker Container — que tarda lo suyo —, puedes seguir avanzando en otra cosa en vez de quedarte mirando cómo avanza el log. O incluso usarlos para PRs relacionadas que se alimentan entre sí. No es un context switching brutal entre mundos distintos. Es no estar bloqueado mientras esperas.
¿Qué es un git worktree?
En lugar de cambiar de rama con git checkout (y tener que hacer stash, o perder el estado de lo que tenías abierto), creas una carpeta separada vinculada al mismo repo pero en otra rama. Dos carpetas, dos ramas, cero conflictos.
git worktree add worktree-or-task-name feature/folder
Esto se hace una vez por tarea. La carpeta persiste hasta que la eliminas.
Abrir cada worktree en Cursor
Cada worktree es una carpeta. Cada carpeta se abre como una ventana de Cursor independiente. Tres formas:
Option A – Abrir una ventana desde el terminal:
cursor [folder] cursor ~/projects/task-acursor .
O, primero creas el worktree…
Raulito-D mainfolder % git worktree list /Users/raulantoncuadrado/git/mainfolder 3a68b9a805 [master]Raulito-D mainfolder % git worktree add -b my_worktree_name my_folderPreparando árbol de trabajo (nueva rama 'my_worktree_name')HEAD está ahora en 3a68b9a805 something or noneRaulito-D mainfolder % git worktree list /Users/raulantoncuadrado/git/mainfolder 3a68b9a805 [master]/Users/raulantoncuadrado/git/mainfolder/my_folder 3a68b9a805 [my_worktree_name]Raulito-D mainfolder % cd my_folderRaulito-D my_folder % cursor .
Bueno. Una cosa. El cursor command no está disponible por defecto. Aunque es muy sencillo habilitarlo. En cursor…
Cmd+Shift+P- Escribe “Install cursor command”
- Selecciona.

Está.
Opción: Nuevan ventana con profile
También desde el propio Cursor, puedes usar File -> New Window with profile. El profile es un conjunto de settings que puedes grabar y usar para distintos proyectos. Puedes usar esto, por ejemplo, si estás trabajando en un proyecto de datos y a la vez con Jupyter Notebooks donde haces EDA. Bueno, que hay muchas opciones.
¿Merece la pena?
Si terminas una cosa antes de empezar la siguiente, no. Ramas normales y una sola ventana van bien.
Pero si necesitas trabajar en varias cosas al mismo tiempo y no quieres arriesgarte a mezclas y descuidos… pues claramente. Mucho.


Leave a Reply