Note that Bob doesn’t have to squash his commits when he is making a GitHub PR.
Since March 2016, you can leave that operation to the maintainer (you) accepting your PR.
See “Squash your commits” and its new documentation
This is a new option which lets you force commit squashing on all pull requests merged via the merge button.