Introduction
You can find a more complete version over here.
Hi there! My name is Steve. This is my tutorial on jj, a version control system. It is not the official tutorial, but so many folks liked the first version that I wrote, that it may become the official one someday. We'll see!
jj
is the name of the CLI for Jujutsu. Jujutsu is a DVCS, or "distributed
version control system." You may be familiar with other DVCSes, such as git
,
and we will sometimes compare and contrast with it, since it is the most popular
VCS in current use. You don't need to be a git
expert to read this tutorial.
So why should you care about jj
? Well, it has a property that's pretty rare in
the world of programming: it is both simpler and easier than other DVCSes, but
at the same time, it is more powerful. We're often
taught, correctly, that there exist tradeoffs when we make choices. And
"powerful but complex" is a very common tradeoff. That power has been worth it,
and so people flocked to git over its predecessors.
I know that sounds like a huge claim, but I believe that the rest of this tutorial will show you why.
jj
's design is about having a smaller number of essential concepts, and ensure
that they fit together nicely. Once you learn the basics, the learning curve
to advanced usage is very smooth.
There's one other reason you should be interested in giving jj
a try: it has a
git
compatible backend, and so you can use jj
on your own, without requiring
anyone else you're working with to convert too. This means that there's no real
downside to giving it a shot; if it's not for you, you're not giving up all of
the history you wrote with it, and can go right back to git
with no issues.