Existem benefícios na implementação que você fez. Embora você tenha omitido alguns casos de borda possíveis, como a verificação de alterações não preparadas em outras ramificações (você pode querer adicionar / armazenar primeiro). A alternativa para isso é usar um sistema de integração contínua como o Jenkins para lidar com as atualizações:
Isto tem vários benefícios sobre o sistema git hooks. Ele pode ser controlado centralmente (nos deparamos com problemas para fazer com que os git-hooks trabalhassem em diferentes sistemas operacionais que nossos engenheiros usavam, mais complexidade nós acrescentávamos). Também há mais funcionalidades disponíveis (muitos módulos contribuídos pelo usuário). Nossos scripts de repo agora entram em contato com Jenkins para o status de repo e podem atualizar de acordo.