Jujutsu (jj)
- title
- Jujutsu (jj)
- type
- concept
- summary
- jj-vcs/jj โ VCS designed around mutable change-IDs, first-class operation history, and explicit modeling of working-copy state as a commit
- tags
- version-control, jujutsu, tooling
- created
- 2026-05-21
- updated
- 2026-05-21
Jujutsu (jj) is a version control system designed to replace git for everyday workflows while keeping git as a backend. Its core design choices are the inverse of git's where they matter:
- Mutable change-IDs. Each change has a stable identity that persists across rebases and amends โ what git lacks when it loses the "C2'" relationship to "C2". Successor commits become first-class.
- Operation history. The local op log records every state change to the repo (commit, rebase, undo), so undo, redo, and "what did I do an hour ago" are mechanical.
- Working copy as a commit. The working tree is itself a commit, automatically updated; staging area is gone. Diff-of-diff workflows that don't fit git's model fall out for free.
- Conflicts as data. Unresolved merge conflicts are stored in commits, not in a special filesystem state โ you can rebase a conflict forward, resolve it later.
- Git-compatible backend. Repos can be shared with git users; jj reads and writes the same
.git/data.
Why this matters
The piece that motivated this page is billjings-git-not-fine โ Bill Jings's argument that git's workflow primitives break down under stacked PRs, async development, and the kind of multi-PR work that becomes common with AI agents. Stacked PRs in particular are a structural mismatch for git but a one-line workflow in jj.
The related framing is in i-dont-want-your-prs and agent-principal-agent-problem โ both observing the same workflow shift jj was designed for, even if neither names jj explicitly.
Status
Active project under the jj-vcs organization (github.com/jj-vcs/jj). Google's internal-Piper-flavored ergonomics ported to a public Rust implementation. Several large open-source projects have adopted it for daily work; the git-compatible backend means the rest of a team doesn't have to migrate.
Worth adding to watchlist if a toolbox page is wanted; right now it's a concept page because the wiki references the idea more often than it would reference a specific toolbox entry.