2011-11-19 10 views
6

Intento configurar mi gancho post-recepción en git (windows). Aquí está la secuencia de comandos:gancho post-recepción en Windows - GIT_WORK_DIR: no existe tal archivo o directorio

#!/bin/sh 
echo "post-receive hook" 
GIT_WORK_TREE=/d/test git checkout -f 

Cuando hago git push en mi repositorio local que ver este mensaje de eco, la escritura se llama correctamente.

¡Pero el proceso de pago no se ejecuta! Hay un error en la vista de consola:

remote: fatal: Could not switch to '/d': No such file or directory 

Pero cuando pongo este comando en Git Bash, ¡funciona!

+1

¿Estás usando cygwin en lugar de bash incluido con msysgit? Porque con cygwin, la ruta sería '/ cygdrive/d/test'. – VonC

+0

No, he instalado Git solo con Git Bash, sin agregar git a PATH. ¿Tal vez debería intentar agregar git a PATH? – RobertM

+0

No creo que el 'PATH' sea el problema (puede' eco' el '$ PATH' verificar). Tal vez intente también establecer 'GIT_DIR'. Muestra también el 'pwd', y un' ls/d'. – VonC

Respuesta

2

De los comentarios:

GIT_WORK_TREE=/Volumes/D/test git checkout -f 

obras.

Sin embargo, los comentarios OP RobertM:

¿Qué pasa si voy a empujar desde otro ordenador? Tengo otro clon en mi máquina ventanas donde este camino no está disponible

Esa es una cuestión diferente, y puede ser soluciona por ejemplo con una convención de nomenclatura de unidades: uno puede decidir asociar cualquier camino que el repositorio remoto es (d:\test o cualquier otra ruta) a una letra de unidad específica (X: por ejemplo), con Windows subst command.

0

que tienen mysysgit que se ejecuta en un servidor web que empujo a partir de mi estación de trabajo local y uso el siguiente post-recepción de la escritura:

#!/bin/sh 
git --work-tree=/cygdrive/d/www --git-dir=/cygdrive/d/CodeRepositories/tempRepo.git checkout -f 

Lo que me perplejo al principio era el archivo no está en un UNIX formato, puede usar Notepad ++ para cambiarlo. Tenga en cuenta que estoy usando cygwin para hacer push sobre SSH para que los nombres de directorio deban ser modificados.

Cuestiones relacionadas