Идея, лежащая в основе перехватчиков Git, заключается в том, что они выполняют по крайней мере одну из двух вещей: изменяют состояние репозитория или текущей операции или, необязательно, блокируют возникновение поведения.
Перехват, который выполняется перед объектамитолкнуть не сможет сделать ни один из этих: у него нет данных о том, как изменить хранилище, так как у него нет никаких объектов, и без каких-либо данных о том, что происходит, он не может с пользойопределите, нужно ли блокировать push.
Для вашего проекта может быть полезно обернуть серверный сценарий git HTTP оболочкой, которая выполняется до запуска службы push, или той, которая ищет разделитель pkt-строки flush(0000), перехватывая данные.Вы также можете исправить Git, чтобы иметь нужный вам крючок для вашего проекта в соответствующем месте.