> JJ adds changes to random old commits instead of the newest one? Yikes.
jj adds changes to the current commit, which is the staging area, which is the index, which is the working copy. I get you don't like it, no need to be an ass about it, but denying that it works is just that, denial.
> > rerere by default
> Takes space and time.
doesn't take my time. I'll take it.
> > --update-refs by default
> Maybe sensible, don't need it most of the time.
No reason to waste time thinking when it's needed.
That wasn't what I meant, git --fixup is for changing earlier commits, you answered as if it didn't that's what I wanted to point out. (I tried to be sarcastic, because it was obvious that you didn't mean that.)
>> Maybe sensible, don't need it most of the time.
As in I want the opposite behaviour most of the time. That's why that is the default.
`--update-refs` was added in 2.38, in 2022. `--fixup` was added in 1.7.3. Like I said, git has grown additional features and workarounds. Knowing all of them is a lot of work.
You can use git commit --fixup to record what you want to change in an earlier commit.
> start over from scratch
rerere
> Branches based off your original changes don't get rewritten
As written elsewhere: git rebase --update-refs. If you want to do it manually git rebase --onto.