I want clean history, but that really means (a) clean and (b) history.
People can (and probably should) rebase their private trees (their own work). That’s a cleanup. But never other peoples code. That’s a “destroy history”
So the history part is fairly easy. There’s only one major rule, and one minor clarification:
- You must never EVER destroy other peoples history. You must not rebase commits other people did.
[…]
If you are working with git together with other people, it’s worth a read.
It’s usually possible to find this by navigating back to the PR which you can find referenced in the squash commit.
I guess this might be a larger problem for codebases not following a trunk-based approach, where PRs grows to very large sizes before going into the mainline branch.