Comment by Zambyte

Comment by Zambyte 21 hours ago

11 replies

The less I use git directly, the more convinced I am that git is an absolutely awful interface to git repositories. I have been using jj for about two years now, and I literally cannot imagine going back to using the git cli. I have not used lazygit, but if you find it interesting, I say please go for it.

The please is because I am tired of fixing issues created by people being confused by git. Just use anything else than the git cli, it's probably better.

danielhep 19 hours ago

I have tried jj several times but I feel like it slows me down significantly because I can’t grok the workflow. I like to do a bunch of changes then quickly select them in my editor and commit them, breaking them up into different commits to keep them organized. With jj’s lack of editor integration, I don’t know how to do this with the cli alone so I end up with bigger messier commits.

  • WolfeReader 19 hours ago

    You want "jj commit -i". You'll get an interface that lets you choose files, chunks, or lines to commit.

    • Zambyte 17 hours ago

      Or the shorthand: jj ci -i

      Or if you don't care to set a commit message just yet: jj split -i

      Or if you want to defer making sure each commit has the right content until later, just use jj new, and then later use jj squash and jj split to make the commits have sensible changes, and jj desc to set the descriptions.

    • mettamage 8 hours ago

      Sold!

      I'm trying jj. I've seen enough mentions now. I've never read anything about it.

      I hope it's compatible with git.

      • MrGreenTea 8 hours ago

        The compatibility with git is the whole reason it's so popular (just run `jj git init --colocate` in your git repo). You can use it without forcing your collaborators to switch from git and you can use it will a git forges as well.

  • stouset 16 hours ago

    This exact thing is quite literally one of jj’s flagship features: `jj split`.

  • tcoff91 16 hours ago

    In JJ you make a bunch of changes and then you split the commit into multiple commits.