The goal of a Pre-receive (push) Hook is to validate all incoming commits as they first appear in repository. So, if changes are validated once, and they won’t be checked by the pre-receive hook again.
Merge Checkvalidates all commits included into Pull Request (YACC does this even if they were checked already), which . This allows to postpone changes validation till Pull Request creation / approvalvalidation until PR merge, rather than at the time the changes are pushed. If you haven’t enabled push-hook, incoming changes will not be validated during push.
...