Git VS jj

Compare Git vs jj and see what are their differences.


Git Source Code Mirror - This is a publish-only repository but pull requests can be turned into patches to the mailing list via GitGitGadget ( Please follow Documentation/SubmittingPatches procedure for any of your improvements. (by git)


A Git-compatible VCS that is both simple and powerful (by martinvonz)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
Git jj
289 91
50,419 6,881
2.3% -
10.0 10.0
4 days ago 5 days ago
C Rust
GNU General Public License v3.0 or later Apache License 2.0
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.


Posts with mentions or reviews of Git. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-13.
  • Git tracks itself. See it's first commit of itself
    1 project | | 3 May 2024
  • Resistance against London tube map commit history (a.k.a. git merge hell) (2015)
    1 project | | 2 May 2024
    Look at any PR/patch series that got merged into the Git project.

    Any random one. Because those that did not meet the minimum criteria for a well-crafted history would not have passed review.

  • GitHub Git Mirror Down
    1 project | | 11 Apr 2024
  • Four ways to solve the "Remote Origin Already Exists" error.
    1 project | | 28 Mar 2024
  • So You Think You Know Git – Git Tips and Tricks by Scott Chacon
    6 projects | | 13 Feb 2024
    Boy, I can't find this either (but also, the kernel mailing list is _really_ difficult to search). I really remember Linus saying something like "it's not a real SCM, but maybe someone could build one on top of it someday" or something like that, but I cannot figure out how to find that.

    You _can_ see, though, that in his first README, he refers to what he's building as not a "real SCM":

  • Maintain-Git.txt
    1 project | | 6 Feb 2024
  • Git Commit Messages by Jeff King
    2 projects | | 1 Feb 2024
    Here is the direct link, as HN somehow removes the query string:
  • Git commit messages by Jeff King
    1 project | | 1 Feb 2024
  • My favourite Git commit (2019)
    8 projects | | 1 Feb 2024
  • Do we think of Git commits as diffs, snapshots, and/or histories?
    1 project | | 6 Jan 2024
    I understand all that.

    I'm saying, if you write a survey and one of the possible answers is "diff", but you don't clearly define what you mean by "diff", then don't be surprised if respondents use any reasonable definition that makes sense to them. Ask an ambiguous question, get a mishmash of answers.

    The thing that Git uses for packfiles is called a "delta" by Git, but it's also reasonable to call it a "diff". After all, Git's delta algorithm is "greatly inspired by parts of LibXDiff from Davide Libenzi"[1]. Not LibXDelta but LibXDiff.

    Yes, how Git stores blobs (using deltas) is orthogonal to how Git uses blobs. But while that orthogonality is useful for reasoning about Git, it's not wrong to think of a commit as the totality of what Git does, including that optimization. (Some people, when learning Git, stumble over the way it's described as storing full copies, think it's wasteful. For them to wrap their heads around Git, they have to understand that the optimization exists. Which makes sense because Git probably wouldn't be practical if it lacked that optimization.)

    The reason I'm bringing all this up is, if you're trying to explain Git, which is what the original article is about, then it's very important to keep in mind that someone who is learning Git needs to know what you mean when you say "diff". Most people who already know Git would tend to gravitate toward the definition of "diff" that you're assuming (the thing that Git computes on the fly and never stores), but people who already know Git aren't the target audience when you're teaching Git.




Posts with mentions or reviews of jj. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-04-05.
  • Why Don't I Like Git More?
    4 projects | | 5 Apr 2024
  • Twenty Years Is Nothing
    4 projects | | 4 Mar 2024
    Jujutsu is along the lines of what you describe:

    You can drop it in and work seamlessly from git repos

  • Git Branches as a Social Construct
    4 projects | | 15 Jan 2024
    Pull Requests (or Merge Requests) are merged only when (1) all of the automated tests pass; and (2) enough necessary reviewers have indicated approval.

    Git doesn't tell you when it's necessary to have full test coverage and manual infosec review in development cycles that produce releases, and neither do Pull Requests. ctrl-f hubflow

    It looks like datasift's gitflow/hubflow docs are 404'ing, but the original nvie blog post [1] has the Git branching workflow diagrams; which the wpsharks/hubflow fork [3] of datasift/gitflow fork [2] of gitflow [1]has a copy of in the README:



    [3] is still a great resource, and it could work on mobile devices.

    The math of VCS deltas and mutable and immutable content-addressed DAG nodes identified by 2^n bits describing repo/$((2*inf)) bits ;

    >> "ugit – Learn Git Internals by Building Git in Python" is a social construct atop e.g. git, which is really a low-level purpose-built tool and Perl and now Python porcelain.

    jj (jujutsu) is a git-compatible VCS CLI:

    "Ask HN: Best Git workflow for small teams" (2016)

  • PyPy has moved to Git, GitHub
    3 projects | | 1 Jan 2024
    You will probably like Jujutsu, which takes much inspiration from Mercurial:

    It isn't a 1-to-1 clone, either. But tools like revsets are there, cset evolution is "built in" to the design, etc. There is no concept of phases, we might think about adding that, but there is a concept of immutable commits (so you don't overwrite public ones.)

    It also has many novel features that make it stand out. We care a lot about performance and usability. Give it a shot. I think you might be pleasantly surprised.

    Disclosure: I am a developer of Jujutsu. I do it in my spare time.

  • Ask HN: Can we do better than Git for version control?
    17 projects | | 10 Dec 2023
    I have created a discussion. Thank you both

  • I (kind of) killed Mercurial at Mozilla
    12 projects | | 21 Nov 2023
    > why don't version control systems (especially ones that can change history) have undo/redo functionality out of the box?

    It's true. And Jujutsu has undo functionality out of the box, too. It's not just Sapling. :)

  • Confusing Git Terminology
    5 projects | | 2 Nov 2023
  • Things I just don't like about Git
    6 projects | | 8 Oct 2023
    Git made the only choice a popular VCS can make. History rewrites will exist, period. If you're opposed to history rewrites, then git gives you the tools to ensure the repos you control are not rewritten, and that's all it can do in a world where people have control of their own computers.

    If Fossil ever becomes as popular as git, people will create software that allows history rewriting in Fossil, and that's fine. People will do what they want on their own computer, and I think it's morally wrong to try and stop that.

    Another user in this thread linked to jj [0], an alternative git client that does some pretty weird things. For example, it replaces the working tree with a working commit and commits quite often. I like git and that seems weird to me, but I'm not offended, people can do what they want on their own computer and I have the tools to ensure repos under my control are not effected. That's all I can hope for.


  • Pijul: Version-Control Post-Git • Goto 2023
    11 projects | | 11 Aug 2023
    I recently found out about another project called jj: It takes inspiration from Pijul and others but is git-compatible.
  • A beginner's guide to Git version control
    4 projects | | 7 Aug 2023

    I think maybe both fossil and bitkeeper are more intuitive too.

    Did you try any of those?

What are some alternatives?

When comparing Git and jj you can also consider the following projects:

scalar - Scalar: A set of tools and extensions for Git to allow very large monorepos to run on Git without a virtualization layer

git-branchless - High-velocity, monorepo-scale workflow for Git

PineappleCAS - A generic computer algebra system targeted for the TI-84+ CE calculators

forgit - :zzz: A utility tool powered by fzf for using git interactively.

Subversion - Mirror of Apache Subversion

EdenSCM - A Scalable, User-Friendly Source Control System. [Moved to:]

vscode-gitlens - Supercharge Git inside VS Code and unlock untapped knowledge within each repository — Visualize code authorship at a glance via Git blame annotations and CodeLens, seamlessly navigate and explore Git repositories, gain valuable insights via rich visualizations and powerful comparison commands, and so much more

pre-commit - A framework for managing and maintaining multi-language pre-commit hooks.

linux - Linux kernel source tree

git-imerge - Incremental merge for git

chromebrew - Package manager for Chrome OS [Moved to:]

GitUp - The Git interface you've been missing all your life has finally arrived.