Синхронизация нескольких удаленных репозиториев git
У нас есть:
- Удаленный репозиторий с каким-то проектом.
- Несколько удаленных репозиториев, которые я хочу синхронизировать с предыдущим.
Когда что-то выдвигается в первом проекте (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
подключите первый удаленный репозиторий, который затем перетянет из вашего первого удаленного репозитория в другие.