Автоматически надевая удаленный сервер с нажатием Мерзавца?

Вот то, что я пытаюсь сделать:

У меня есть репозиторий GitHub, часть которого я хотел бы сделать сеть просматриваемой. Прямо сейчас я клонировал репозиторий на своем собственном сервере, и он работает хорошо, но чтобы усовершенствовать его, я должен вручную войти в систему и вытянуть последние изменения.

Я не уверен, является ли это лучшей идеей (или лучшим подходом), но я хотел бы, чтобы удаленный сервер автоматически вытянул каждый раз, когда кто-то продвигает в репозиторий. GitHub помогает достаточно для выполнения сценария, когда кто-то продвигает, но я не уверен, как вытянуть, как только кто-то делает это.

Я использовал PHP для простоты, но просто делал что-то как git pull естественно не работает из-за полномочий. Действительно ли это - плохая идея или является там другим способом достигнуть того, что я хочу сделать? Это походит на единый набор, но я не был уверен.

Спасибо.

10
задан Vernon 8 March 2010 в 08:27
поделиться

2 ответа

Если легко запустить скрипт для push , вы можете настроить хуки для push:

  • с GitHub на чистый ( пустое рабочее дерево) на вашем веб-сервере
  • от вашего голого репо на вашем веб-сервере до вашего «живого» репозитория (с рабочим деревом, представляющим ваш веб-сайт)

Затем вы можете связать это с крючком на вашем «живом» repo для обновления самого себя (посредством «git merge», слияния содержимого вашего голого репо с вашим «живым» репо) всякий раз, когда ваше голое репо что-то нажимает.

Вы получаете желаемый эффект: любое нажатие на репозиторий GitHub (полагаю, для определенной ветки) вызовет обновление репозитория «живого» веб-сервера.

2
ответ дан 4 December 2019 в 04:21
поделиться

Я сделал что-то, что работает почти точно так же, за исключением того, что "удаленное" репо, которое получает push, находится на том же компьютере, что и репо, которое потом тянет. Верно (и важно), что один и тот же набор пользователей имеет разрешения в обоих репозиториях. (Но это должно быть нормально; вы не хотите, чтобы случайные люди толкали ваше репо.) В любом случае у меня просто есть обработчик git post-update, вызывающий сценарий оболочки, который делает за меня тягу. Единственный сложный момент заключается в том, что вам нужно очистить среду (я использовал env -i , или вы можете отключить переменные, связанные с git), иначе извлечение запутается.

1
ответ дан 4 December 2019 в 04:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: