¿Cómo protegerse contra empujar grandes blobs binarys en git?

Tengo un repository de git central que yo mismo y varios queueboradores regularmente empujamos y extraemos. En el pasado, he cometido un gran blob binary por crash, lo que requiere una nueva configuration para eliminar por completo y es un problema para todos, por lo que me gustaría protegerme de que esto no ocurra en el futuro. ¿Es posible configurar un gancho en el repository remoto que verificará el tamaño del file de los files que se están insertando (si se están agregando nuevos o se está actualizando un file existente) y rechazará los files que superen un tamaño de umbral, digamos 2 MB?

Es importante que desee que los files existentes que superen los 2 MB no se tocan (por lo que no se debe rechazar un envío si ya hay un file de 2MB en el repository, solo si el file agrega un file de 2MB o hace que un file existente sea de 2 MB ) Además, quiero que el gancho se ejecute en el lado remoto para que no tenga que preocuparme de que los clientes no tengan que tener una configuration de gancho.

Editar: Dado que una inserción puede contener varias confirmaciones, e incluso una confirmación con un file grande la atasca en el repository, quiero protegerme contra las impugnaciones que contienen / cualquier confirmación / que crece o agrega un file> = 2MB.

Parece que el gancho de pre-recepción sería el lugar correcto para este control. Este gancho se ejecuta en el lado del server de una inserción, y tiene acceso a suficiente información para que implemente una verificación de tamaño de file.

Este enganche es invocado por git-receive-pack en el repository remoto, que ocurre cuando se hace un git push en un repository local. Justo antes de comenzar a actualizar las references en el repository remoto, se invoca el enlace pre-recepción. Su estado de salida determina el éxito o el fracaso de la actualización.