Оба текущих ответа адресованы Mercurial; с git есть также ловушки, и вам понадобится ловушка предварительного получения или обновления. См. Справочную страницу githooks .
Будьте осторожны, используя их для проверки таких вещей, как покрытие тестами - вы не хотите, чтобы пользователю приходилось ждать выполнения трудоемких тестов при попытке проталкивания.