A Git-compatible VCS that is both simple and powerful
A

A Git-compatible VCS that is both simple and powerful

A Git-compatible VCS that is both simple and powerful

29,905 stars
N/A forks
N/A contributors

README

Project documentation from GitHub

Jujutsu VCS: A Simpler, More Powerful Git Alternative

If you've ever felt like Git is a bit... much, you're not alone. The commands can be arcane, the mental model is complex, and sometimes you just want to version your code without wrestling with your tools. That's where Jujutsu VCS (or jj) comes in. It's a version control system that aims to be both simpler and more powerful than Git, while still being fully compatible with it. Think of it as a fresh coat of paint and a new engine for the core ideas of version control.

At its heart, jj is a Git-compatible command-line tool. You can work in a jj repository and still push to and pull from any Git remote. It doesn't seek to replace the entire Git ecosystem, but rather to offer a smoother, more intuitive interface for the day-to-day version control workflow.

What It Does

Jujutsu VCS is a version control system with a command-line interface that's designed to be easy to use and script. It treats your working copy as a commit, which is a fundamental shift from Git's model. Every command you run that changes your code (like jj new, jj restore) automatically creates a new commit. There's no separate "staging area" like Git's index. This design leads to a workflow that many find more logical and less error-prone.

Why It's Cool

The magic of jj is in its unique approach. Here are a few standout features:

  • The Working Copy is a Commit: This is the big one. You're always working on a commit. There's no concept of "staged" vs. "unstaged" changes. When you make edits, jj sees them as changes to this commit. This eliminates the confusion of git add and git commit as separate steps.
  • Automatic Commits & Timeless Editing: Commits are cheap and automatic. You can change any commit's message, description, or even its parent(s) long after you've made it. Rewriting history isn't a dangerous operation; it's a normal part of the workflow.
  • Powerful, Consistent CLI: The commands are designed to be predictable and composable. For example, jj log shows the revision graph, jj diff shows changes, and jj split can break a commit into two. The flags and patterns are consistent across commands.
  • Git Interop is Seamless: You can jj git push and jj git pull to collaborate on any Git host (GitHub, GitLab, etc.). You can even have a mix of jj and git users in the same repository, th

Did you like this issue?

Join our weekly newsletter

Love discovering amazing projects?

Help us continue bringing you the best open-source discoveries every week.

Back to Projects
Last updated: Dec 16, 2025