Primeros pasos con jj

Por: Artiko
jujutsujjtutorialbasico

Crear un repositorio

Nuevo repositorio (colocado con Git)

jj git init mi-proyecto
cd mi-proyecto

Esto crea un repo jj con backend Git — funciona con GitHub, GitLab, etc.

Clonar un repositorio Git existente

jj git clone https://github.com/usuario/repo.git
cd repo

Convertir un repo Git existente

Desde dentro de un repo Git:

jj git init --colocate

Esto permite usar jj y git en el mismo directorio.

Ver el estado

jj status

Muestra qué archivos han cambiado en el working copy. A diferencia de Git, no hay “untracked” ni “staged” — todo cambio se refleja directamente.

Ver el log

jj log

Salida típica:

@  sqpuoqvx [email protected] 2026-02-26 08:30
│  (no description set)
◆  zzzzzzzz root()

El @ indica tu working copy actual. Cada commit tiene un change ID corto (como sqpuoqvx) que es estable aunque edites el commit.

Flujo básico de trabajo

1. Haz tus cambios normalmente

echo "# Mi Proyecto" > README.md
echo "console.log('hola')" > index.js

No necesitas add ni stage. jj ya registró los cambios.

2. Describe tu commit

jj describe -m "agregar README y archivo inicial"

3. Crea un nuevo cambio para seguir trabajando

jj new

Esto crea un nuevo commit vacío sobre el actual. Ahora tu working copy es este nuevo commit.

4. Repite el ciclo

# Haz cambios...
jj describe -m "agregar configuración"
jj new

Ver diferencias

# Diferencias en el working copy
jj diff

# Diferencias de un commit específico
jj diff -r sqpuoqvx

# Diferencias entre dos commits
jj diff --from abc --to xyz

Ver contenido de un commit

jj show
jj show sqpuoqvx

Resumen de comandos básicos

ComandoDescripción
jj git initCrear repo con backend Git
jj git clone URLClonar repo Git
jj statusVer estado del working copy
jj logVer historial
jj diffVer cambios
jj describe -m "msg"Describir el commit actual
jj newCrear nuevo commit vacío
jj showVer detalle de un commit