explaingit

jj-vcs/jj

Analysis updated 2026-05-18

28,583RustAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

A version control system that works like Git but with a simpler interface, automatic commits, no staging, anonymous branches, and automatic rebasing when you edit history.

Mindmap

mindmap
  root((repo))
    What it does
      Git alternative
      Tracks file changes
      Automatic commits
      Auto-rebasing
    Key features
      No staging area
      Anonymous branches
      Conflict tracking
      Operation log
    Tech stack
      Rust
      Git storage
      CLI tool
    Use cases
      Solo developers
      Large teams
      Complex histories
    Workflow
      Simpler than Git
      GitHub compatible
      Undo mistakes easily
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Replace Git as your daily version control tool with a simpler command-line interface and automatic commit tracking.

USE CASE 2

Manage complex project histories where commits are automatically rebased when you edit older changes.

USE CASE 3

Work on large team projects while keeping your code on GitHub or GitLab without changing your hosting platform.

USE CASE 4

Undo mistakes easily by reviewing and replaying actions from the operation log instead of manually fixing history.

What is it built with?

RustGit

How does it compare?

jj-vcs/jjlbjlaq/antigravity-manageremilk/egui
Stars28,58328,87228,978
LanguageRustRustRust
Setup difficultymoderatehardmoderate
Complexity3/53/53/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Rust compilation required, no external services needed but build time may vary by system.

Use freely for any purpose including commercial. Keep the notice and disclose changes to the patent grant.

In plain English

Jujutsu, with the short command name jj, is a version control system. A version control system is the kind of tool developers use to keep a history of changes to their code, share those changes with teammates, and roll back when something goes wrong. The README pitches it as both simple and powerful, and aimed at being easy to use whether you are new or working on a large project with a long history. What makes Jujutsu different is that it separates the user-facing commands and the algorithms from the underlying place where data is stored. Today the default storage layer is a Git repository, which is what makes Jujutsu compatible with existing Git-based tools and hosting services. Higher-level information like bookmarks (its term for branches) is kept in its own storage outside Git. The README highlights several design choices it borrows or invents. There is no separate staging area, and branches can be anonymous so you do not have to name every small change. A revset language lets you select sets of commits, and a template language formats output. Conflicts are tracked as first-class objects in the model rather than just as text differences, so some conflict resolutions propagate automatically. Your working copy is itself recorded as a commit and updated on each change, which removes the need for stashes or a staging area. Every operation on the repository is logged, so you can ask what just happened and undo mistakes. Modifying a commit automatically rebases its descendants on top. Some experimental features include safe behavior when a repository sits inside a syncing folder. The project is written in Rust.

Copy-paste prompts

Prompt 1
How do I install jj and initialize a new project, and what are the first commands I should learn?
Prompt 2
Show me how to make changes, commit them, and push to GitHub using jj instead of git commands.
Prompt 3
Explain how jj's automatic rebasing works when I edit an older commit, what happens to commits built on top of it?
Prompt 4
How do I undo a mistake in jj using the operation log, and can I go back to any previous state?
Prompt 5
Can I use jj alongside Git in the same repository, and how does it store data in a Git repo?

Frequently asked questions

What is jj?

A version control system that works like Git but with a simpler interface, automatic commits, no staging, anonymous branches, and automatic rebasing when you edit history.

What language is jj written in?

Mainly Rust. The stack also includes Rust, Git.

What license does jj use?

Use freely for any purpose including commercial. Keep the notice and disclose changes to the patent grant.

How hard is jj to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is jj for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub jj-vcs on gitmyhub

Verify against the repo before relying on details.