Tengo el siguiente problema. He puesto al día el 'post-recepción' en un CD en un directorio determinado y luego tirar de la cesión temporal de desplegarlo, así:git post-receive no funciona correctamente
#!/bin/bash
cd /var/www/site
git pull origin master
Sin embargo cada vez que hago 'git principal origen empuje' en mi máquina local consigo lo siguiente:
Counting objects: 5, done.
Delta compression using up to 2 threads.
(etc..)
remote: fatal: Not a git repository: '.'
Sin embargo, cuando el CD manualmente a /var/www/site
y hacer git pull origin master
que funciona muy bien.
brillante, justo lo que necesitaba. ¿Te importa explicar por qué esto debe hacerse? – andy
'GIT_DIR' es una de las pocas variables de entorno que puede establecer para varios comandos de git. En un gancho posterior a la recepción, '$ GIT_DIR' siempre está (?) Establecido en' .'. Si 'cd' en otro lugar,' git pull' aún ve '$ GIT_DIR' establecido en' .' y espera encontrar el repositorio en '.', pero te has movido y no está allí. Limpiarlo hace que git vuelva a su comportamiento "normal" (mirando en './. Git', en el lugar donde 'cd'-ed se ha hecho). – torek