receive ocean made husky hooks easy digitalocean automatically git githooks

ocean - Obteniendo "fatal: no es un repositorio de git: ''.''" cuando se utiliza el gancho post-update para ejecutar ''git pull'' en otro repositorio



npm pre-commit (5)

A pesar de que unset GIT_DIR solo funciona.

el problema ocurre cuando configura GIT_DIR incorrectamente en otro lugar.

simplemente puede agregar eso en su lugar: GIT_DIR = .git / Funcionará

Soy nuevo en git, así que me disculpo (y corrígeme) si uso mal la terminología aquí, pero haré mi mejor esfuerzo.

Intento configurar un git repo (hub) y una copia de trabajo (principal) del sitio de desarrollo en un servidor web. Intenté modelarlo después de este artículo . Deseo que la copia de trabajo de desarrollo se actualice cada vez que se envíe el repositorio del concentrador. Tengo la impresión de que el gancho adecuado para esto es post-update , que he creado así:

#!/bin/sh whoami cd /path/to/working-copy/ RET=`git pull` echo $RET

Actualizar

Cuando envío los cambios desde mi repositorio local al centro desnudo obtengo el siguiente resultado del script de post-actualización:

remote: sites remote: fatal: Not a git repository: ''.''

Sin embargo, si uso SSH en el servidor como ''sitios'' de usuario y ejecuto este script manualmente, funciona bien. ¿Alguna idea sobre qué podría estar fallando con este gancho o script?


Aquí está el guión que finalmente funcionó. Creo que el bit que me faltaba originalmente que le impedía trabajar remotamente era el unset GIT_DIR

#!/bin/sh cd /path/to/working-copy/ || exit unset GIT_DIR git pull repo branch exec git-update-server-info


En mi caso, había especificado un árbol de trabajo, y esto rompe algunos comandos, como pull (o más precisamente fetch ).

Para desarmar el árbol de trabajo si está en tu configuración de git es a través de:

git config --unset core.worktree

(Hay otras maneras de establecer un árbol de trabajo)

Importante tener en cuenta,

No hay ningún problema de que este sea su problema a menos que usted mismo excave este hoyo a su alrededor mediante el uso de un árbol de trabajo personalizado en primer lugar.

Broma:

Esto me implica que los internos de git usan rutas relativas al worktree + .git/ en algunos casos. En mi experiencia, los árboles de trabajo no están bien soportados en absoluto, excepto por las partes más fundamentales de git. No he experimentado a fondo, Git probablemente se comportaría si configuro lo que sea que la variable de configuración del directorio git es correcta, con lo que no he jugado.


Intente en su lugar:

#!/bin/sh cd /path/to/working-copy/ env -i git pull


Probablemente tengas un problema de permisos. No estoy seguro de cómo ha configurado su repositorio de git, pero si se está ejecutando bajo el usuario de git , asegúrese de que el usuario de git pueda ejecutar el git pull en su directorio de proyecto.

Opcionalmente, intente esto para descubrir qué usuario es cuando se ejecuta el enlace:

echo `whoami`