Git checkout en el gancho post-recepción: "la operación debe ejecutarse en un tree de trabajo"

Para actualizar mi website de forma remota con git, he creado un repository de git simple en la raíz de mi count de alojamiento compartido junto con el siguiente enlace de post-recepción:

#!/bin/sh export GIT_WORK_TREE=/public_html git checkout -f 

Inicialmente, esto funcionó como estaba previsto: cuando empujé mis cambios al repository remoto, el gancho post-recepción se activó y los files se revisaron en la carpeta / public_html.

Sin embargo, ahora recibo un error "fatal: esta operación debe ejecutarse en un tree de trabajo" al finalizar la compra. No tengo idea de por qué este error está apareciendo ahora, ya que no he hecho ningún cambio en mi configuration.

Estoy atascado. Para mí esto debería funcionar (y de hecho lo hizo), a less que no haya entendido completamente cómo funciona git. He estado buscando preguntas similares a las mías, pero hasta ahora no he encontrado nada útil.

Agradecería cualquier idea de dónde debería mirar.

Los ganchos se ejecutan en el directory .git .

He utilizado cd .. antes de git checkout en el gancho como una solución simple.

Si el .git repo está completamente disjunto de la location de pago, también podría ser concebible

 cd /path/to/checkout GIT_DIR=/path/to/repo/.git git checkout -f 

Tuve un problema similar. Intenté cambiar el directory en hooks / post-receive y estaba cargando, pero luego recibí el error 'remote: fatal: esta operación debe ejecutarse en un tree de trabajo'. Revisé las instancias de git que funcionaban y noté que la única diferencia era un salto de línea después del GIT_WORK_TREE antes del command de finalización de la compra. Cuando eliminé ese corte para que git checkout -f estuviera en la misma línea, ¡funcionó!

Cambiado de esto:

 #!/bin/sh GIT_WORK_TREE=/var/www/vhosts/dylanglockler.com/dev.brightsideresumes.com git checkout -f 

A esto:

 #!/bin/sh GIT_WORK_TREE=/var/www/vhosts/dylanglockler.com/dev.brightsideresumes.com git checkout -f