| I find JJ to make things much easier for me than Git: - No staging needed, edit your commit directly in your working directory - Rebasing is automatic, I regularly edit historic commits and the messages - jj absorb will automatically split and merge hunks into related ancestry commits - Defer conflict resolution; many conflicts are resolved later by splitting/squashing/moving commits/hunks further (possible only for first-class conflicts) - No interactive rebase needed, since jj commands automatically rebase while editing historic commits, it feels like constantly living within an interactive rebase - Easily refer to the same revision (change) across rebase commands by using a jj change_id, without scribbling down Git commit hashes that change across a rebase - Easily undo (+redo) your last commands through the jj operation log without having to backup the entire git repo at each step And jj-fzf (https://github.com/tim-janik/jj-fzf/) gives me every useful jj command with a single hotkey (e.g. Ctrl-P for push, Ctrl-N for a new commit with 1+ parents, Alt-B to edit bookmarks/tags, Alt-R to rebase, Alt-Z for undo, …) while browsing the log with commit+diff preview. |