No permitir el uso directo de Git Pull

En nuestro repository de Git, después de extraer los files de origen a local, es absolutamente crucial ejecutar otro script que sincronice algo. Sin embargo, como los progtwigdores (incluyéndome a mí) son propensos a olvidar incluso las cosas cruciales, creo que será mejor que escriba un pequeño script bash:

git pull origin master # do our synchronizing stuff 

Sin embargo, eso aún no resolvería el problema: cualquier desarrollador podría seguir haciendo git pull sin usar el script. Entonces, lo que tengo en mente es: configurar el repository de Git para que solo permita la extracción con un parámetro especial. Si el parámetro especial no está presente, devolverá un post personalizado. Al igual que:

 git pull origin master -special-parameter # do our synchronizing stuff 

Hacer git pull origin master sin -special-parameter terminaría en git pull not allowed directly. Please use our special script. git pull not allowed directly. Please use our special script. es posible?

La única solución que me viene a la mente es cambiar los derechos de los usuarios, revocar todos los derechos para el repository, otorgar derechos especiales a special_script_user y empaquetar el git pull dentro de su -c . Sin embargo, eso no sería realmente elegante.

Hay ganchos git para eso. Simplemente defina su secuencia de commands como el post-merge y se ejecutará automáticamente después de una git pull o una git merge (hay variables que lo ayudan a diferenciar entre las dos).

Tenga en count que los git hooks no son parte del contenido del repository , lo que significa que no puede simplemente comprometer un gancho en su extremo y todos los demás mágicamente también los tienen.

Una solución es enviar los scripts de enlace al repository y pedirle a cada desarrollador que los active cuando clonen el repository. Esto se puede hacer, por ejemplo, copiándolos o vinculándolos al directory .git/hooks

 ln -s hooks/post-merge .git/hooks/ 

y tiene que hacerse solo una vez.