OK, então resolvi isso ...
1) Eu configurei um script que contém as seguintes linhas:
cd /var/www/partsdb/ >> /home/git/push.log
git pull >> /home/git/push.log
git add . >>/home/git/push.log
git commit -a -m "Scheduled Commit: 'date'" >>/home/git/push.log
git push >> /home/git/push.log
echo "Push Backup Successful 'date'" >> /home/git/push.log
Este script é movido para o repositório de trabalho, obtém todas as alterações do repositório central (lembre-se que essas alterações afetarão somente os arquivos de programas, os arquivos de dados não) e adicionará quaisquer alterações. arquivos de dados (armazenados em um subdiretório /data
para maior clareza) confirmam as alterações (incluindo uma mensagem baseada em data automática para rastrear alterações / culpas) e, em seguida, retornam ao repositório.
EDIT: Desde então, adicionei o -a
flag ao comando commit, que removerá os arquivos excluídos pelos scripts de atualização automática ( add .
adicionou novos arquivos). > [/ EDIT]
2) Chamo esse script de crontab, executando o script como root (como root é apenas o usuário que tem permissão para escrever na pasta home do git e na pasta / var / www) usando o comando:
0 * * * * root /home/git/gitpush.sh
Isso executa o script de hora em hora - enquanto dispositivos móveis isolados só obtêm do banco de dados na inicialização (diário / am), os usuários da rede local sempre terão a versão mais atualizada (que foi enviada para ramificação mestre) .