I think it's me not understanding the difference between "jj new" and "jj commit", but I'm not sure.
I'm a big fan of the staging area for crafting clean commits, so this would be super useful for me to understand.
I think it's me not understanding the difference between "jj new" and "jj commit", but I'm not sure.
I'm a big fan of the staging area for crafting clean commits, so this would be super useful for me to understand.
When you're ready to "commit", you give a description to your current set of changes (`jj describe -m`) and then split out any of the pieces you don't want into the next commit (`jj split`). You get to pick the parts you want pulled out, and those get pulled out onto a new, fresh commit.
To be honest, JJ makes it way easier for me to craft clean commits. The design philosophy of JJ is commit-oriented, not branch-oriented. Since it's a frontend to git, everything it does is fundamentally git. But it allows commit-oriented workflows to flow so much easier than git does.