Настройка переменных конфигурации:
receive.denyNonFastForwards
receive.denyDeletes
предотвратит любые «принудительные» толчки во всех ветвях.
Если вы хотите более точный контроль перед ветвлением, вам придется использовать «ловушку» в удаленном хранилище, возможно, «ловушку» обновления.
Существует примерный хук обновления, называемый update-paranoid, который, вероятно, делает то, что вам нужно (и даже больше) в дистрибутиве git в папке contrib.
gitweb link