Remix.run Logo
BeetleB 11 hours ago

One of my favorite jj features is "jj absorb".

For each change you've made in the current revision, it finds the last commit where you made a change near there, and moves your changes to that commit.

Really handy when you forgot to make a change to some config file or .gitignore. You just "jj new", make the changes, and "jj absorb". No need to make a new commit or figure out where to rebase to.

Oh, and not having to deal with merge conflicts now is awesome. My repository still has merge conflicts from months ago. I'll probably go and delete those branches as I have no intention to resolve them.

dnmc 4 hours ago | parent | next [-]

And If `jj absorb` gets it wrong, you can run `jj undo`.

This is such a killer feature to me. I'm not scared to start potentially gnarly rebases anymore because I can painlessly undo.

BeetleB 4 hours ago | parent | next [-]

Yes. With "jj undo", I'm not scared to do anything. The brief time I had to go back to using vanilla "git", I didn't enjoy being extra cautious.

Using a version control tool shouldn't require much self discipline.

nchmy 3 hours ago | parent | prev [-]

yeah, i regularly try absorb then undo when it moves it to a commit from 7 years ago, then manually squash where appropriate

xixixao 11 hours ago | parent | prev [-]

git absorb exists too fyi

bitdivision 10 hours ago | parent [-]

Not by default: https://github.com/tummychow/git-absorb