У меня есть частный репозиторий GitHub, на котором я хотел бы настроить свой тестовый сервер (LAMP) для автоматического извлечения / извлечения файлов из основной ветки и помещения их в свой веб-корень (/ var / www).
Разве нельзя было бы создать сценарий оболочки, который будет cd в / var / www, а затем запустить git pull origin master? Могу ли я сделать это с помощью задания CRON?
Да.
Создайте сценарий оболочки с чем-то вроде:
#!/bin/sh cd /var/www git pull origin master
Вы можете хранить файл где угодно. Предположим, в / scripts / Предположим, он называется getsite.sh
Убедитесь, что ваш файл исполняемый:
chmod +x /scripts/getsite.sh
Запустите команду, чтобы убедиться, что она работает. Я предполагаю, что вы уже запустили git init и настроили репо.
/scripts/getsite.sh
Предполагая, что он работает нормально, вы можете создать запись crontab, чтобы запускать ее так часто, как считаете нужным:
crontab -e
Вам понадобится запись примерно следующего содержания:
59 23 * * * /scripts/getsite.sh
Это будет запускать скрипт в 23:59 каждый день.
Прочтите страницу руководства по crontab, если вам понадобится помощь.
Ответ Да, но вам нужно рассмотреть несколько различных вариантов. Основная идея - объединить события в цепочку, независимо от того, используете ли вы git-hooks, rsync и cron или даже Dropbox.
Для получения дополнительных идей взгляните на http://debuggable.com/posts/git-tip-auto-update-working-tree-via-post-receive-hook:49551efe-6414-4e86-aec6-544f4834cda3
и
http://www.turnkeylinux.org/blog/website-synchronization
Поищите git-hooks и push / pull, и вы найдете много информации.