Problema al utilizar Git como herramienta de implementación por twig

Intento crear un script de actualización posterior y usar git como una herramienta de implementación en un server remoto.

Mi script de post-actualización se parece a esto

git update-server-info for ref in [email protected];do echo $ref if [ "$ref" = "refs/heads/production" ] then ssh [email protected] GIT_WORK_TREE=/home/www/test git checkout -f production fi done 

Sin embargo, cuando ejecuto eso, aparece un error que dice:

 Not a git repository (or any of the parent directories): .git 

Lo cual no tiene ningún sentido porque puedo ejecutar commands git desde el directory a través de ssh. enter image description here

¿Hay algo más que deba hacer en mi script post-actualización?


Solución

GIT_DIR variable GIT_DIR , así que ahora mi command se ve así:

 ssh [email protected] GIT_DIR=/home/www/test/.git GIT_WORK_TREE=/home/www/test git checkout -f production 

También debe establecer la variable de entorno GIT_DIR ; intente lo siguiente:

 ssh [email protected] GIT_WORK_TREE=/home/www/test GIT_DIR=/home/www/test/.git git checkout -f production 

Las reglas sobre GIT_DIR y GIT_WORK_TREE (y sus equivalentes, --git-dir=<> y --work-tree=<> ) son tan contraintuitivas para mí que ahora hago una regla que si estoy configurando cualquiera uno de ellos, debería establecer ambos, y además asegurarme de que ambos estén en paths absolutos.