Jujutsu: una capa sobre Git que elimina la zona de staging y cambia cómo se identifican los commits

Fuentes: Jujutsu: The Git Upgrade You Didn't Know You Needed

Jujutsu (jj) es una herramienta de línea de comandos para control de versiones que se apoya en Git como almacén de datos, pero replantea dos fundamentos del modelo tradicional: la zona de staging y la identificación inmutable de commits. No pretende sustituir a Git, sino funcionar como una capa complementaria que conserva la compatibilidad total con repositorios, remotos y plataformas como GitHub o GitLab. La adopción en un proyecto existente se reduce a un único comando (jj git init --colocate), que añade una carpeta .jj junto a .git sin tocar el .gitignore raíz del proyecto.

El primer cambio sustantivo es que desaparece la separación entre directorio de trabajo, índice y commit. En jj el working copy es siempre un commit: cualquier edición se rastrea de forma continua y no existe git add. Comandos como jj describe -m "..." o jj commit -m "..." registran el mensaje directamente, mientras que jj new sella el commit actual y abre uno nuevo encima sin perder el trabajo previo. El segundo cambio son los change IDs: identificadores alfabéticos cortos, estables y asignados al crear el commit, que permanecen invariantes tras amend, rebase o squash. Esto permite referenciar el trabajo por una identidad fija o mediante navegación relativa (@-, @--), evitando la fragilidad de los hashes de Git.

El flujo diario también se simplifica. Los bookmarks funcionan como ramas pero sin obligar al usuario a situarse sobre uno de ellos: los commits existen libremente en el grafo y se nombran solo cuando llega el momento de hacer push. Bifurcar, cambiar de tarea o deshacer errores resulta más tranquilo porque el working copy nunca queda en un estado sin registrar. En conjunto, jj ofrece una disciplina diferente sobre el mismo modelo distribuido de Git, especialmente útil en flujos con agentes de IA que escriben y reorganizan código junto al desarrollador.