Постоянно синхронизировать git зеркала

У меня есть несколько сайтов, которые используют Drupal, у меня есть несколько серверов, live, dev1, dev2 ...

Репо кодовой базы Drupal имеет большой размер (112 Мб), поэтому я стремлюсь максимально использовать возможности жестких ссылок git, чтобы каждый раз, когда я добавлял сайт, он не дублировал это.

Так, скажем, на живом сервере у меня есть голое главное репо, и все мои сайты являются его клонами, каждый из которых использует свою ветвь. Это здорово на одном сервере, используются жесткие ссылки, это быстро и эффективно.

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

То, что я хотел бы сделать, это настроить зеркало чистого репо на каждом из моих серверов разработки, а затем клонировать его.

dev1$ git clone --mirror live:master-bare-repo  dev1-mirror-repo
dev1$ git clone -b site1 dev1-mirror-repo site1
dev1$ git clone -b site2 dev1-mirror-repo site2

Пока все хорошо. Но я хочу, чтобы зеркала всегда были синхронизированы. Так что я использовалкрюк после получения на зеркало dev1 ', чтобы сделатьgit push --mirror origin, Теперь, если site1 на dev1 pusches фиксирует, они волшебным образом передаются в master-bare-repo.

But что если я внесу изменения вlive сервер, а что толкать? Я не могу настроитьpost-receive крюк, чтобы подтолкнуть к другим (и), потому что это предположительно сработаетtheir post-receive крючки, которые в конечном итоге в рекурсии?

Есть ли какой-нибудь умный способ обойти это?

Ответы на вопрос(1)

Ваш ответ на вопрос