@halfbyte Right.
In my opinion history is important. Granularity might be different for WIP and final result. I think small atomic commits are valuable at both stages: development/review and a year from now when someone else is trying to figure out why this thing is the way it is.
If I had a choice I'd take “wip, fix, fix, wip, fix” history over squashed history. It is noisy but at least it shows the process and in between there are intentional commits. Squashed history loses intentionality. A squashed commit may have all the commit messages but you can't tell which changes correspond to those messages and even if they end up in the final result.
My process is somewhat sloppy while in a branch but before the merge I spend time making the history as nice as possible as a courtesy to whoever’s gonna read it. I tidy up all the fixups, sometimes split big commits if they're too messy. I rebase my branch to allow fast-forward merge (reduce conflicts and other noise). On multiple occasions nice history helped my save time and I’m trying to pay it forward.