Автоматическое зеркальное отображение репозитория git

Одним из побочных эффектов использования внешнего репозитория Subversion было получение автоматических резервных копий вне сайта при каждом коммите.

Я хотел бы добиться того же, используя Git.

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

Я полагаю, что ловушка после фиксации была бы подходящим способом. У кого-нибудь есть конкретные примеры этого?

23
задан Andy Baker 27 August 2010 в 09:56
поделиться

1 ответ

Я написал хук после фиксации именно для этой цели. Сам крючок прост; просто добавьте файл с именем post-commit в каталог .git/hooks/ со следующим содержимым:

git push my_remote

Файл post-commit должен быть исполняемым. . Также убедитесь, что вы добавили подходящий репозиторий remote с именем my_remote, чтобы этот хук работал.

Я также сделал символическую ссылку с именем post-merge, которая указывает на post-commit. Это необязательно. Если вы сделаете это, вы также будете автоматически синхронизироваться после слияния.

ОБНОВЛЕНИЕ: Если вы хотите гарантировать, что ваш сервер и ваше зеркало не будут рассинхронизированы, а также обеспечить резервное копирование всех веток, ваш хук post-commit может использовать :

git push my_remote -f --mirror
21
ответ дан 29 November 2019 в 02:56
поделиться
Другие вопросы по тегам:

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