How could you squash multiple commits together without using git merge --squash?
Rebasing
Caching
You can't. git merge --squash is the only git command for that operation.
Reflogging