¿Cómo puedo evitar que este gancho git forme un ciclo sin fin?

Empujo a un repository desnudo. A partir de ahí utilizo un enlace posterior a la recepción que hace que un directory de trabajo en ese server haga un pull / push en ese repository vacío.

Esto no solo actualiza el directory de trabajo con cambios, sino que también empuja cualquier contenido agregado por el usuario al repository simple (server).

No lo he ejecutado porque causaría un bucle infinito ya que la inserción en el server lanzaría nuevamente el enlace posterior a la recepción.

Necesito que esto suceda una sola vez, no una y otra vez.

A continuación está el código:

#!/bin/sh # deprecated # git --work-tree=~/public_html --git-dir=~/root.git checkout -f # cd /home/username/root.git/hooks # on a push to the server, run a pull/push to the apps working directory ( cd ~/root git pull ~/root.git master git add -A . git commit -m "automated commit on push" git push ~/root.git master ) echo "*" echo "**" echo "***" echo "****" echo "*****" echo "success" echo "*****" echo "****" echo "***" echo "**" echo "*" 

¿Hay alguna manera de ejecutar el enganche solo en function de una condición, es decir, no de cada impulso?

Asumió que en el gancho empujado por un usuario específico, entonces puede verificar el autor de la última confirmación mediante el git log :

 LAST_USER=$(git log -1 --pretty=format:"%an") 

Si es el usuario utilizado por el gancho, entonces no ejecute un empuje.