#web #github #cloud
#веб #github #облако
Вопрос:
У меня есть веб-сайт, работающий на облачном сервере. Могу ли я связать связанные файлы с моим репозиторием github. Итак, всякий раз, когда я вношу какие-либо изменения на свой веб-сайт, он автоматически обновляется в моем репозитории github?
Комментарии:
1. Вы хотите сказать, что хотите, чтобы github обновлялся по мере внесения изменений в ваш веб-сайт на вашем облачном сервере? Вместо этого используйте rsync или что-то подобное, что не требует пользовательского ввода для фиксации изменений.
2. ДА. Я хочу, чтобы мой github автоматически обновлялся без какого-либо пользовательского ввода для фиксации изменений
3. Как я могу использовать rsync? Есть ли какой-либо альтернативный инструмент, предоставляемый GitHub?
Ответ №1:
Предполагая, что на вашем облачном сервере установлена ОС, поддерживающая bash script, добавьте этот файл в свой репозиторий.
Допустим, ваши файлы расположены в /home/username/server
, и мы назовем файл ниже /home/username/server/AUTOUPDATE
.
#!/usr/bin/env bash
cd $(dirname ${BASH_SOURCE[0]})
if [[ -n $(git status -s) ]]; then
echo "Changes found. Pushing changes..."
git add -A amp;amp; git commit -m 'update' amp;amp; git push
else
echo "No changes found. Skip pushing."
fi
Затем добавьте запланированную задачу, такую как crontab, для запуска этого скрипта так часто, как вы хотите, чтобы ваш github обновлялся. Сначала он проверит, есть ли какие-либо изменения, и только зафиксирует и отправит все изменения, если есть какие-либо изменения.
Это будет запускать каждый скрипт каждую секунду.
*/60 * * * * /home/username/server/AUTOUPDATE
Не забудьте предоставить разрешение на выполнение этого файла с chmod x /home/username/server/AUTOUPDATE
Это всегда приведет к внесению изменений с сообщением о фиксации «обновить«.
Комментарии:
1. Спасибо!! Я предполагаю, что в решении, о котором вы упомянули, было бы несколько коммитов, даже если бы я изменил одно слово.
2. @KillMe Это правильно. Вот почему я рекомендовал что-то другое, например rsync, которое не использует git. Git просто работает не так, как вы хотите.
3. Итак, что было бы более эффективным решением? Как работает rsync? Как он узнает, когда начинать фиксацию или обновлять мой репозиторий github?
4. @KillMe Я предполагаю, что вы хотите, чтобы коды на сервере были скопированы в другое место, чтобы они были доступны без доступа к серверу. К сожалению, это не будет работать с github. Вам нужен свой собственный сервер или найдите какой-нибудь другой сервис, поддерживающий rsync, который работает аналогично чему-то вроде dropbox. Что-то подобное тоже работает, но это не входит в сферу данного вопроса.
5. Есть ли модуль / пакет для Node.js для достижения цели такого автоматического обновления?