Синхронизация нескольких удаленных репозиториев git

У нас есть:

  1. Удаленный репозиторий с каким-то проектом.
  2. Несколько удаленных репозиториев, которые я хочу синхронизировать с предыдущим.

Когда что-то выдвигается в первом проекте (1), мне нужно перенести эти изменения в другие удаленные репозитории (2).

Я могу вытащить из первого репо и нажать на репозитории назначения.

Какой самый простой способ сделать это?

Благодарю.

2 ответа

Решение

Вы можете клонировать новый репозиторий без зеркала из вышестоящего репозитория, который вы не можете контролировать, например, с помощью:

git clone --bare --mirror git://github.com/whoever/whatever.git

(По факту, --mirror подразумевает --bare, так --bare не является строго необходимым.) --mirror Опция говорит, что вместо того, чтобы просто брать локальные ветки с удаленного компьютера и делать их удаленно отслеживающими, git должен зеркалировать все ветки из удаленного репозитория с одинаковыми именами.

Затем вы можете настроить частое задание cron, которое будет запускать следующие команды в этом хранилище:

git remote update
git push --mirror --force repo1 
git push --mirror --force repo2

Это предполагает, что вы добавили repo1 а также repo2 как удаленные, и что они указывают на пустые репозитории, которые вы хотите использовать только в качестве зеркал. (Последнее требование заключается в том, что вы используете --forceтак что, если другие люди подталкивают свою работу к repo1 или же repo2Это будет перезаписано автоматическими зеркальными толчками.)

Вы могли бы создать post-receive подключите первый удаленный репозиторий, который затем перетянет из вашего первого удаленного репозитория в другие.

Другие вопросы по тегам