Cómo agregar correctamente el command 'git push' a crontab – Ubuntu

Creo que es una pregunta simple, pero he agregado una carpeta como Origin Master tal y como está orientada esta guía .

backupgit.cron un file backupgit.cron y dentro de él los siguientes commands:

 cd /var/bkpfolder/ git add . git commit -m "another commit" git push origin master 

Y en crontab -e la siguiente línea:

 30 * * * * /var/bkpfolder/backupgit.cron 

Lo que pasa es que los (nuevos) files que agrego para probar este crontab nunca se cargan … Si ejecuto los commands en el backupgit.cron manual, funcionan.

Creo que tiene algo que ver con ir a la carpeta origin master ( cd /var/bkpfolder/ ?) Para ejecutar el command push, entonces lo que estoy buscando es una forma correcta de ejecutar los commands push en /bkpfolder/ declarado en el backupgit.cron

¡gracias por adelantado!

Me di count de lo que estaba haciendo mal … Como dije, los commands dentro de backupgit.cron funcionaron cuando estaba dentro de la carpeta (leí como no la carpeta pnetworkingeterminada es crontab) … Así que me di count de que al comienzo del command git puedo especificar mi carpeta de acción como en git -C /var/bkpfolder/

Así que reemplacé lo que había dentro de backupgit.cron desde:

 cd /var/bkpfolder/ git add . git commit -m "another commit" git push origin master 

A:

 git -C /var/bkpfolder/ add . git -C /var/bkpfolder/ commit -m "another commit" git -C /var/bkpfolder/ push origin master 

+

Permisos añadidos para leer / escribir el file en el usuario al que se escribió el crontab

Su master origen debe ser un repository simple o la twig no puede ser desprotegida.

Si no es un repository simple y la twig que será presionada está desprotegida, obtendrá el siguiente error:

 git push origin master --force Counting objects: 3, done. Writing objects: 100% (3/3), 214 bytes | 0 bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) remote: error: refusing to update checked out branch: refs/heads/master remote: error: By default, updating the current branch in a non-bare repository remote: is denied, because it will make the index and work tree inconsistent remote: with what you pushed, and will require 'git reset --hard' to match remote: the work tree to HEAD. remote: remote: You can set 'receive.denyCurrentBranch' configuration variable to remote: 'ignore' or 'warn' in the remote repository to allow pushing into remote: its current branch; however, this is not recommended unless you remote: arranged to update its work tree to match what you pushed in some remote: other way. remote: remote: To squelch this message and still keep the default behaviour, set remote: 'receive.denyCurrentBranch' configuration variable to 'refuse'. To /Users/Roman/gittest/master ! [remote rejected] master -> master (branch is currently checked out) error: failed to push some refs to '/Users/Roman/gittest/master' 

Solución

Si no desea usar un repository bkpfolder una twig que difiera entre su bkpfolder y su directory master .

Ejemplo fuera de la caja

Para una mejor comprensión, cambié el nombre del master remoto al origin .

 mkdir main_backup cd main_backup && git init --bare && cd .. git clone main_backup bkpfolder cd bkpfolder && echo "This is a test" >> test.txt git add . git commit -m 'Automatic backup' git push origin master