2011-07-21 12 views
6

Espero agregar una Tarea programada de Windows para git push a github todas las noches. Tengo un archivo CMD. Cuando ejecuto el archivo CMD en el símbolo del sistema de Windows, funciona bien. Pero cuando lo ejecuto a través de la tarea programada de Windows. Está estancado para siempre. El estado es "en ejecución". Y desde el registro puedo ver que comenzó con éxito el shell git bash. ¿Alguna idea?tarea programada de Windows git push a github

echo git push > i:\gitpush 
echo 'pushing' >>log1 
C:\WINDOWS\SysWOW64\cmd.exe /c ""C:\Program Files (x86)\Git\bin\sh.exe" --login i:\gitpush" >>log1 2>>error  
echo 'done pushing' >>log1 
del i:\gitpush 

Aquí está la salida del registro:

'pushing' 
Welcome to Git (version 1.7.4-preview20110204) 


Run 'git help git' to display the help index. 
Run 'git help <command>' to display help for specific commands. 

luego hice un experimento para cambiar el nombre de la escritura gitpush a un nombre de archivo incorrecto. Y salió inmediatamente con el error "No such archivo o directorio", que se espera. Muestra que el script de gitpush está pasando correctamente al bash, pero por alguna razón está atascado.

La razón por la que tengo que pasar por git bash shell es porque no sé cómo configurar la clave pública en el shell de línea de comandos de Windows sin usar git bash shell.

Gracias!

Respuesta

2

No sé cómo configurar la clave pública en el shell de Windows de línea de comandos

público/privadas llaves funciona también en un shell de DOS, siempre que se defina la variable de entorno %HOME% (haciendo referencia al directorio padre del .ssh)

el truco con Windows tarea programada es para asegurarse de que:

  • ¿quién está ejecutando realmente la tarea (la "cuenta del sistema"? o el usuario real?)
    Mostrar "env" puede ayudar a la depuración del problema.
  • donde se ejecuta: si git push depende de la ruta actual para empujar correctamente el repositorio actual, debe estar seguro de que su tarea se ejecuta donde se supone que debe hacerlo.
+0

% HOME% lo hizo! ¡Gracias! –

+1

Mi caso invocaba una secuencia de comandos programada de powershell que funcionaba cuando estaba conectado pero ssh.exe se colgaba cuando se ejecutaba como una tarea. Estableciendo explícitamente $ env: HOME = "camino al hogar" antes de llamar a git lo arregló. –

+0

¿Cuál es el truco para que se quede sin el repositorio actual? ¿Es solo cuestión de poner el archivo dentro de ese repositorio? Actualmente estoy llamando a un archivo, por ejemplo, C:/a cuando la ruta de git repo es realmente C:/b – exhoosier10