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.

Conceptgitjj
Unstaged changesSeparate “staging area”Don’t exist — edits are immediately part of the working-copy commit
Branch pointerMoves automatically on commitCalled a bookmark; you move it explicitly
Amending a commitgit commit --amendJust edit the file — jj snapshots continuously
Undogit reflog (manual)jj op undo — full operation log, undoable from any state
ConflictsMust resolve before committingCan 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.