Git: автоматическое извлечение из хранилища?

Есть ли способ настроить git таким образом, чтобы он прослушивал обновления из удаленного репозитория и извлекал информацию каждый раз, когда что-то меняется? Вариант использования: я хочу развернуть веб-приложение с помощью git (поэтому я получаю контроль версий развернутого приложения), но хочу разместить «центральное» git-репо на Github, а не на веб-сервере (интерфейс Github очень хорош) ,

Кто-нибудь получил это работает? Как Героку это делает? Мой Google-фу не может дать мне никаких релевантных результатов.

65 голосов | спросил Li Haoyi 2 PMpMon, 02 Apr 2012 18:38:11 +040038Monday 2012, 18:38:11

5 ответов


0

В Git есть «хуки», действия, которые можно выполнять после других действий. То, что вы, похоже, ищете, это «крюк после получения». В администраторе github вы можете настроить URL-адрес после получения, который будет попадать (с полезной нагрузкой, содержащей данные о том, что только что было отправлено) каждый раз, когда кто-то отправляет в ваш репозиторий.

Несмотря на это, я не думаю, что автоматическое извлечение является хорошей идеей - что, если что-то не так было добавлено в вашу ветку? Я бы использовал такой инструмент, как capistrano (или эквивалентный) для таких вещей.

ответил ksol 2 PMpMon, 02 Apr 2012 18:41:52 +040041Monday 2012, 18:41:52
0

В unix-лайках вы можете создать на своем компьютере задание cron, которое будет называться «git pull» (каждый день, каждую неделю или что-то еще). В Windows вы можете использовать планировщик задач или команду «AT», чтобы сделать то же самое.

ответил SigTerm 2 PMpMon, 02 Apr 2012 18:41:26 +040041Monday 2012, 18:41:26
0

Существуют программы непрерывной интеграции, такие как Jenkins или Bamboo, которые могут обнаруживать фиксации и запускать такие операции, как сборка, тестирование, пакетирование и развертывание. Они делают то, что вы хотите, но у них много зависимостей, их сложно настроить, и в итоге они могут использовать периодическую проверку репозитория git, что будет иметь тот же эффект, что и вызов git pull by cron каждую минуту.

ответил Pavel Niedoba 13 +03002016-10-13T18:49:08+03:00312016bEurope/MoscowThu, 13 Oct 2016 18:49:08 +0300 2016, 18:49:08
0

Вы можете написать сценарий для достижения этой цели, выполнив следующие действия:

  1. получить идентификатор удаленной фиксации HEAD
  2. сравните идентификатор с локальной HEAD
  3. если они разные, используйте git pull и используйте команду deploy
  4. если то же самое, передайте
  5. написать задание cron для выполнения сценария (ПРИМЕЧАНИЕ: не допускать дублирование выполнения.)
ответил bo yang 20 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowWed, 20 Sep 2017 10:07:28 +0300 2017, 10:07:28
0

Я знаю, что этот вопрос немного устарел, но вы можете использовать журнал Windows и git для автоматического запуска вашего проекта с помощью webhook и php (при условии, что ваш проект использует веб-сервер. Смотрите мою суть здесь: https://gist.github.com/upggr/a6d92e2808e9628ebe0d01fd >3544aa4a4

ответил Ioannis Kokkinis 11 MarpmSat, 11 Mar 2017 18:40:52 +03002017-03-11T18:40:52+03:0006 2017, 18:40:52

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132