Одним из побочных эффектов использования внешнего репозитория Subversion было получение автоматических резервных копий вне сайта при каждом коммите.
Я хотел бы добиться того же, используя Git.
т.е. каждый коммит в мой локальный репозиторий автоматически коммитит на внешний, так что оба репозитория всегда синхронизированы.
Я полагаю, что ловушка после фиксации была бы подходящим способом. У кого-нибудь есть конкретные примеры этого?
Я написал хук после фиксации именно для этой цели. Сам крючок прост; просто добавьте файл с именем 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