jj-vcs/jj
A Git-compatible VCS that is both simple and powerful
Recommended between 2025-09-01 and 2026-10-13. Last pushed 2026-11-02.
▲ 10 recommend · ▼ 2 criticisms
What hackers say
“As many of you know, I'm a big fan of jj.”
— steveklabnik, 2026-10-13 · strong recommendation · original comment on Hacker News ↗
show original comment
I apologize for what may come across as a bit of a cop-out answer. As many of you know, I'm a big fan of jj. The jj project used to have a comparison to Pijul for informational purposes, but the Pijul folks took offense, and so it was removed: https://github.com/jj-vcs/jj/commit/0525dc9d860a5fff6a97d134acc2c325aa36df30 As such, I generally just decline to comment on Pijul, as I want to be respectful of them. As the linked commit says, it's not super clear what exactly they do not like, and so I don't want to accidentally cross some line. In general I wish the project well, seeing a new VCS in Rust is very cool.
“jj is truly a gem as a project.”
— aseipp, 2026-09-01 · strong recommendation · original comment on Hacker News ↗
show original comment
…someone who has been around the block a few times. This is going to sound silly and "guy approves of himself" adjacent, but I've been doing OSS maintainer stuff for like 2 decades at this point, and jj is truly a gem as a project. It is vibrant, and the community is generally speaking insanely talented (huge number of git powerusers), and we have a weird dogfood advantage where people use the tool to contribute right back to it. Martin did an awesome job setting the tone of the project just through his behavior before many of us joined years ago. He's a naturally good project lead. As I said elsewhere: I work for ERSC and I am a Jujutsu maintainer. This is just me speaking candidly on my o…
“I use it in all my Git-underneath repos with `jj git init --colocate`”
— tekacs, 2026-05-18 · strong recommendation · original comment on Hacker News ↗
show original comment
https://github.com/jj-vcs/jj On the off chance that you haven't already had this suggested to you on HN, I would suggest taking a look at JJ. I use it in all my Git-underneath repos with `jj git init --colocate` (You can run that in a git repo and it will hybridize, or in a new folder and it will init and hybridize). It doesn't have the staging concept, treating the working copy as just another commit (@), and to boot it snapshots the state of the tree into @ when you run any jj command, so you can use `jj op log` to see every intermediate state of your working copy at any time. Commit is just `jj commit` with no staging mechanics, or `jj split` to 'split the working copy commits' (commi…
“but auto-commits bring so many positives I'll wear the occasional stray add.”
— rstuart4133, 2026-04-15 · strong recommendation · original comment on Hacker News ↗
show original comment
…didn't understand the issue. Yes, that is going to catch you unawares. I can't see a better solution than a warning. It looks to be an unavoidable negative side effect of jj's auto-commit behaviour, but auto-commits bring so many positives I'll wear the occasional stray add. Usually they are harmless and trivial to reverse - but I've made a mental note to revise my jj workflow. When I change .gitignore, do it in the oldest mutable commit. > Oh, and ISTR submodules were a pain to work with. Yes, they are, although that's no different to git. JJ's tracking of submodule hashes in the parent repository behaves exactly as you would expect. What jj doesn't have is a command to bring the submodu…
“https://github.com/martinvonz/jj and https://github.com/idursun/jjui (Jujutsu VCS, been using it for three months and I really enjoy it)”
— Zizizizz, 2026-04-01 · strong recommendation · original comment on Hacker News ↗
show original comment
… one to the other. https://github.com/eradman/entr (rerun commands automatically when provided files change) (useful for rerunning test commands automatically once you save the file you're editing. https://github.com/martinvonz/jj and https://github.com/idursun/jjui (Jujutsu VCS, been using it for three months and I really enjoy it) https://github.com/jesseduffield/lazydocker (managing containers, images, volumes easily) https://github.com/jesseduffield/lazygit (best tui for git and outside niche git commands, the fastest way to use git.) https://github.com/jdx/mise (fast asdf, direnv, and task runner replacement) (install pretty much version of tool, language, env vars in a per directo…
“I ran into one thing with jj that I would say is pretty bad. I love it other than the way it bit me in this one case.”
— dolni, 2025-09-01 · strong recommendation · original comment on Hacker News ↗
show original comment
I ran into one thing with jj that I would say is pretty bad. I love it other than the way it bit me in this one case. I have a repo with some code that generates a credential and writes the credential to a location specified in .gitignore so it isn't picked up by version control. I used `jj edit` to roll back to a change before the credential path was added to the ignore file to make an unrelated change. The result? jj instantly started tracking the credential and I didn't notice it before pushing to GitHub. Fortunately I did figure it out pretty quickly, but that could have gone very poorly. See also https://github.com/jj-vcs/jj/issues/7237 .
“jujutsu presents the same amount of power with fewer ideas, eg. There is no staging area.”
— wocram, 2026-05-25 · original comment on Hacker News ↗
show original comment
jujutsu presents the same amount of power with fewer ideas, eg. There is no staging area. It adds new features, like jj undo. The un-learning curve is steep if you already know git very well. https://github.com/jj-vcs/jj/discussions/3549 lets you enable automatically advancing bookmarks.
“Jujutsu comes in handy here for the same usecase:”
— dimitrieh, 2025-12-05 · original comment on Hacker News ↗
show original comment
Jujutsu comes in handy here for the same usecase: https://github.com/jj-vcs/jj https://www.stavros.io/posts/switch-to-jujutsu-already-a-tutorial/ Also found https://github.com/gitbutlerapp/gitbutler
“And what I described is incidentally what https://github.com/jj-vcs/jj does, which can be pretty-well described as”
— ezst, 2025-10-26 · original comment on Hacker News ↗
show original comment
…regular history-rewriting tools already at your disposal. And the off-DAG stuff can be handled by stash (and even there, a normal commit that you would rebase to its destination would perfectly do). And what I described is incidentally what https://github.com/jj-vcs/jj does, which can be pretty-well described as "taking the best of all major VCSes"
“Jujutsu may be of interest as a maintained alternative to gitless”
— follower, 2025-10-13 · original comment on Hacker News ↗
show original comment
Just mentioned this in another reply but Jujutsu may be of interest as a maintained alternative to gitless: https://github.com/jj-vcs/jj/blob/main/README.md#introduction
Criticism
“it currently can't merge changes to a file in one branch with that file being renamed in another branch.”
— adrianmsmith, 2026-04-21 · original comment on Hacker News ↗
show original comment
> Because jj's conflict resolution is fundamentally better I don't know jj well so its merge algorithm may well be better in some aspects but it currently can't merge changes to a file in one branch with that file being renamed in another branch. Git can do that. https://github.com/jj-vcs/jj/issues/47
“Another major caveat is that JJ doesn't work with Git LFS yet”
— caspar, 2025-09-01 · original comment on Hacker News ↗
show original comment
Another major caveat is that JJ doesn't work with Git LFS yet - though some progress is being made: https://github.com/jj-vcs/jj/issues/80
Badge for your README
[](https://hackerrepos.org/repo/jj-vcs/jj)