when you're working with other people and you're developing a feature in a branch and others are reviewing it and CI jobs testing it, you probably don't want to end up merging 10 commits with earlier, worse working stuff or rejected experiments into the main branch, so before merging you squash it all together into however many commits makes sense. And rebasing is just for getting rid of merge commits all over the place. If you're working alone it probably doesn't matter unless you commit an API key or something that you want to revert or squash out.
CC:
@apophis@kill-corporations.enterprises