Or, why I dislike squash merges.
Tralfamadorians have the ability to experience reality in four dimensions; meaning, roughly, that they have total access to past, present, and future; they are able to perceive any point in time at will.
Kurt Vonnegut
The code usually tells you the what and sometimes the how. It doesn’t often delve into the why.
That’s where the git commit messages come in. Squash merges tend to at worst eradicate them and at best jumble them into one single large commit message comprised of every squashed message. That makes it a lot harder to get to the meaning of what you were trying to find out, that led you to open a line of code’s associated git log in the first place.