[EN] Jujutsu (jj): Why this VCS might overtake Git

Julian | Feb 27, 2026 min read

Jujutsu (jj): A new paradigm for version management

Git is the industry standard, no question. But be honest: how many times have you struggled with git stash, git add -p or resolving merge conflicts that blocked your entire workflow?

This is where Jujutsu (jj) comes into play. It is a modern Version Control System (VCS) designed from the ground up to eliminate the friction points of classic tools. It’s fast, secure and - here’s the highlight - it understands Git natively. Jujutsu isn’t here to immediately replace Git, but rather to fundamentally improve the way we interact with repositories.

The smooth transition: Co-located repositories

One of the biggest advantages of Jujutsu is that you don’t have to give up your existing way of working overnight. Thanks to Co-Located Repos, Jujutsu can operate directly in the .git directory.

This means specifically:

  • You work with jj commands in your terminal.
  • Jujutsu automatically reflects all changes back to the Git index and branches.
  • Your colleagues won’t even notice that you’re using Jujutsu - everything looks like clean Git to them.

A simple command like jj git init --colocated in an existing project is enough and you’re good to go.

The magic of “Working Copy” – No more git add

In Git the workflow is almost ritualistic: git add ., git commit -m "...". Jujutsu breaks this tradition. There is no staging area here. Instead, Jujutsu always considers your current work to be an “open” commit in the working copy.

A concrete example:

Let’s take a look at how Jujutsu behaves when you edit a file:

# Du erstellst eine Änderung
$ echo "Modern VCS" > feature.txt

# Ein Blick auf den Status
$ jj status
Working copy changes:
M feature.txt
Working copy : qpvvwsqr 338d8750 (empty) (no description set)
Parent revision: nkmvpuow 764a12b1 main | (empty) Initial commit

What we see here: Jujutsu automatically created a “Working Copy Revision” (qpvvwsqr). You didn’t have to add or commit anything. The change is already part of history. When you’re done, simply give the child a name with jj describe -m "Add feature info". This saves a lot of time and prevents you from forgetting changes in unstaged Nirvana.

Features that change the workflow

Jujutsu brings concepts that you won’t want to be without after a week of use:

  • First-class Conflicts: In Git, a merge conflict stops your world. You have to solve it before you move on. In Jujutsu, conflicts are simply a state of a file. You can check in a conflicting commit, push it, or resolve it later. The workflow is never blocked.
  • The Operation Log (Undo for everything): The Operation Log is the luxury version of the Reflog. Every action – whether rebase, edit or commit – gets an ID. With jj undo you literally undo everything. This gives you enormous security when experimenting.
  • Revsets: Jujutsu has its own, almost functional language for finding commits. With expressions like mine() & ~tracked() you can quickly find exactly what you are looking for without scrolling through endless log lists.

Conclusion: Is it worth thinking outside the box?

Jujutsu is currently in its early stages, but the concepts are extremely solid. Especially for developers who spend a lot of time in the terminal and are tired of the friction of Git, jj offers a refreshingly new perspective. Thanks to Git compatibility, the risk is zero: you can test it in your project today and return to pure Git at any time.