Skip to content

What is jj?

Jujutsu (command: jj) is a version control system that uses git as a storage backend while replacing git’s user-facing model with a cleaner, more consistent one.

Concept git jj
Unstaged changes Separate “staging area” Don’t exist — edits are immediately part of the working-copy commit
Branch pointer Moves automatically on commit Called a bookmark; you move it explicitly
Amending a commit git commit --amend Just edit the file — jj snapshots continuously
Undo git reflog (manual) jj op undo — full operation log, undoable from any state
Conflicts Must resolve before committing Can be committed and resolved later

git’s staging area and mutable history create friction in GUI tools. jj’s model maps naturally to a visual interface:

  • Every row in the log is a real commit — there is no “dirty working tree” concept.
  • Change IDs are stable across rebases, so links and references don’t break.
  • The operation log gives you a complete, undoable history of every action.

You don’t need to know git commands — wyrmflow handles everything visually. But understanding that jj sits on top of git means your repos are fully compatible with GitHub, GitLab, and every other git host.