10+ years and I still don’t understand why developers and orgs think it’s necessary to squash and rebase.
AFAIK it's usually to keep the git history clean but doing it manually is so painful. In my company, we enabled GitHub's "Squash and Merge" option (1) so we have the best of both worlds: a clean history and an 1-click squash process. (1) https://github.blog/2016-04-01-squash-your-commits/
In my experience, devs rarely pay attention to this, so commit messages end up as a big list of:
* Ticket-1234 feature
* fix
* cleanups
* fix
* another fix
* now the real fix
Which I wouldn't qualify as a contributor to a "clean" history. It'd be great if GitHub's UX around crafting the commit messages would be more considerate and foster more meaningful commit messages.(edit: formatting)