SEANK.H.LIAO

squashed git

getting the right merge locally

squashed git

extending git notes

Don't know about you, but my git history usually contains a bunch of errors that isn't going to be useful to anyone. So I think having everything related to a change in a single commit is a very good idea (also linear history!).

git

git, being git, has quite a few ways to achieve the same effect.

rebase

git rebase -i main from the working branch and change all the commits after the first to f or s (f will likely let you skip handling a bunch of conflicts).

reset

git reset --soft main and git commit -m "...". Works by forgetting all history and creating a new commit with the final results.

other notes

git checkout -B branch sets branch to point to wherever you are now