Я задаюсь вопросом, существует ли простой способ, т.е. как простое задание крона, для регулярного получения по запросу от удаленного репозитория мерзавца до локального зеркала только для чтения в целях резервирования?
Идеально это вытянуло бы все ответвления и теги, но ведущее устройство/соединительная линия/голова будет достаточно.
Мне просто нужен способ удостовериться, что, если основной сервер мерзавца перестает работать, у нас есть местоположение резервирных копий, к которому мы могли вручную заменить.
Сначала создайте зеркало с помощью
git clone --mirror git@somewhere.com:repo.git
, затем настройте задание cron следующим образом:
*/1 * * * * gitbackup cd /backup/repo.git && git fetch -q --tags
Это будет создавать резервные копии наборов изменений каждую минуту. Может быть, вы хотите делать это реже.
у вас есть прямой доступ к серверу? тогда вы могли бы просто rsync
каталог .git
Как отметил Эндрю, каждый клон git-репо является полноценной резервной копией репо. Тем не менее, если вы хотите, чтобы резервное копирование происходило автоматически на определённой машине, вы можете создать "голое" репо на резервном сервере, залить в него все ветки, которые вы хотите сохранить для первоначального наполнения. Затем просто настройте хук пост-обновления на "основном" репозитории, чтобы как только в него будут вноситься коммиты, он сразу же отправлял их в резервный репозиторий. Нет необходимости в задании cron или rsync, и это почти живая копия.