Git worktree: varias ramas abiertas a la vez

Guía de git worktree

Git worktree: add, list, remove y prune, con ejemplos | We.Inc

Genera el comando git worktree add exacto para una rama nueva, una rama existente o un commit suelto, y luego lista, bloquea, mueve, elimina y limpia worktrees con seguridad.

git worktree permite que un repositorio tenga varias carpetas de trabajo, cada una en su propia rama, compartiendo un único almacén de objetos. Ejecuta git worktree add ../hotfix -b hotfix para crear una carpeta nueva en una rama nueva, git worktree list para verlas todas y git worktree remove ../hotfix al terminar. No hace falta un segundo clon.

Los comandos de worktree que necesitas a diario

Hacer stash, cambiar de rama y recompilar cada vez que alguien pide un arreglo rápido es perder el tiempo. Un worktree te da una segunda copia de trabajo del mismo repo en otra carpeta, así una batería de tests larga, una revisión de código y un parche urgente pueden vivir cada uno en su propio directorio. Usa el generador para obtener los comandos y consulta la referencia para los subcomandos menos habituales.

Preguntas frecuentes

¿Qué diferencia hay entre un worktree y un clon?

Un clon copia el repositorio entero, historial incluido. Un worktree enlazado comparte los objetos y las refs del repositorio original y solo añade una carpeta de trabajo nueva y algo de metadatos, así que los commits hechos en uno se ven al instante desde los demás sin hacer fetch.

¿Pueden dos worktrees usar la misma rama?

No por defecto. git worktree add rechaza una rama que ya está abierta en otro sitio, porque dos carpetas moviendo la misma rama se pisarían el trabajo. --force lo permite, pero un HEAD desacoplado o una segunda rama es casi siempre mejor opción.

¿Por qué falla git worktree remove?

Se niega cuando la carpeta tiene archivos versionados modificados o archivos sin versionar, para que no pierdas trabajo. Haz commit o limpia la carpeta antes, o pasa --force. Un worktree bloqueado necesita --force dos veces.

¿Qué hace git worktree prune?

Borra los registros sobrantes que git guarda de worktrees cuyas carpetas ya no existen, por ejemplo después de eliminar una con rm -rf. Añade -n para ver antes qué eliminaría.

¿Cómo renombro o muevo la carpeta de un worktree?

Usa git worktree move <worktree> <new-path> para que git actualice sus registros. Si ya la moviste con el explorador de archivos, ejecuta git worktree repair desde la nueva ubicación para reconectarla.

Buenos motivos para usar worktrees

Qué se comparte y qué no

Todos los subcomandos de git worktree

Subcomandos de git worktree y su sintaxis

Un hotfix sin salir de tu rama

Parchear producción con una funcionalidad a medias

La carpeta de tu funcionalidad queda exactamente como estaba. El arreglo vive en una carpeta hermana y se elimina una vez hecho el push.

Listar worktrees en un formato apto para scripts

Cada worktree es un bloque de líneas separado por una línea en blanco: su ruta, el hash de HEAD y la rama (o detached).

Generador de comandos worktree

Carpeta para el worktree

Nombre de la rama

Partir de (rama, tag o commit)

Qué abrir

Rama nueva

Rama existente

Commit suelto

Crearlo y abrirlo

Cuando termines

Escribe la ruta de una carpeta para ver los comandos.

Consejo: una ruta que empieza por ../ deja la carpeta nueva junto a tu copia principal.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio