actualizar el repository de git con script de apple

Quiero actualizar mi almacenamiento en línea Bitit de git con script de Apple. Este es el código que funciona en Terminal, pero no cuando ejecuto Apple Script.

cd /Users/mainuser/Desktop/Projects git add -A git commit -m fromAppleScript git push 

hecho a mano en script de apple:

  say "updating backup" do shell script "cd /Users/mainuser/Desktop/Projects git add -A" do shell script "cd /Users/mainuser/Desktop/Projects git commit -m fromAppleScript" do shell script "cd /Users/mainuser/Desktop/Projects git push" 

Estoy un poco confundido por qué este código no funciona. ¿Me pueden ayudar con este problema?

Parece que está usando git como una copy de security del sistema de files. ¿Has considerado git-annex ?

Aprendiendo git

git puede ser difícil de aprender y depurar . Considere dominar los pasos que desea a través de Terminal.app, con la ayuda de Git Book .

El soporte de BitBucket proporciona una gran cantidad de ejemplos y flujos de trabajo para probar y aprender. Una vez que confíe en ese process, la automation a través de AppleScript será mucho más fácil.

Reparar el script de Shell

Para empezar, hay un problema con AppleScript. El script que se pasa al script de shell devolverá un error:

 do shell script "cd /Users/mainuser/Desktop/Projects git add -A" 

Dentro de estas citas está emitiendo dos commands: uno para cambiar el directory y el segundo para agregar files a git. Estos dos commands deben separarse con un punto y coma:

 do shell script "cd /Users/mainuser/Desktop/Projects; git add -A" 

Un mejor enfoque, sería unir los commands con && . Esto significa que si falla el primer command, no se realiza el segundo command. Este enfoque trata el problema de un directory faltante o renombrado:

 do shell script "cd /Users/mainuser/Desktop/Projects && git add -A" 

Alternativamente, para evitar las preocupaciones del directory de trabajo intente pasar la ruta completa a los commands de git :

 do shell script "git add -A '/Users/mainuser/Desktop/Projects'"