I've never worked at Google, but if you want a clean set of commits to implement a feature (think Linux kernel/subsystem, git, etc), Github makes it unnecessarily hard to do that. The best they have is squash and merge which basically makes one mega commit and a merge commit that references a branch with a single commit.