Also seconding the confusion that other commenters have regarding the "three commits max" rule for automated deploys. Maybe engineers at Facebook are just big fans of rebasing, but I often make commits on feature branches that don't "stand on their own" - i.e., would break some functionality without subsequent commits. I'm not sure why you'd want to deploy one-commit-at-a-time unless you kept a very strict "one commi…
In general, feature branches are relatively very short-lived, and will be code reviewed, rebased and landed as a single commit onto master.
Features are often feature flagged off anyway, so it is acceptable to commit partially-functional features to master while that feature is flagged away.
There is a concept of stacked commits, but each commit in the stack needs to be a working step towards the end goal, and as such can (and will) be landed in isolation as they are code reviewed.