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
jjcommands 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 undoyou 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.
![[EN] Jujutsu (jj): Why this VCS might overtake Git](/images/jj-BlogHeader.png)