PHP Git Hook funciona directamente cuando se ejecuta la testing, pero no cuando se ejecuta a través de git

Creé el siguiente gancho git para automatizar algunas tareas para mí y volver a conectarlas cuando envío una confirmación a mi server. El código funciona bien cuando lo ejecuto directamente. Cuando el empuje git empuja al server y el server ejecuta el gancho, dice

remote: Deployment [BETA]: updating. remote: git fatal not a git repository. remote: Deployment [BETA]: complete. remote: git fatal not a git repository. 

Mi código de gancho es:

 #!/usr/bin/php <?php chdir("/var/www"); echo "Deployment [BETA]: updating." . PHP_EOL; exec("git pull"); echo "Deployment [BETA]: complete." . PHP_EOL; // Get the last commit message. $log = shell_exec("git log -n 1 HEAD"); if (stripos($log, "[trigger:composer]")) { echo "Composer: starting." . PHP_EOL; system("php /home/root/bin/composer.phar update"); echo "Composer: completed." . PHP_EOL; } if (stripos($log, "[trigger:phpunit]")) { system("./vendor/bin/phpunit"); } 

Si alguien puede ayudarme, sería muy apreciado.

(De #git) El problema fue que, en el context del gancho, GIT_DIR y GIT_WORK_TREE están configurados apropiadamente para el repository con el que estás trabajando. Si va a hacer un cd dentro del script hook, generalmente debe establecer GIT_DIR y GIT_WORK_TREE apropiada: o GIT_WORK_TREE si se está moviendo a un tree de trabajo de Git, o GIT_WORK_TREE para que apunten al tree de trabajo apropiado y al directory del repository.