Назад | Перейти на главную страницу

официальный способ резервного копирования живого git

Я не могу найти официального руководства по резервному копированию «живого» репозитория git.

Самый первый результат в google при поиске чего-то вроде этого:

https://joeyh.name/blog/entry/difficulty_in_backing_up_live_git_repositories/

Даже сотрудники KDE использовали подход, который привел к катастрофе:

http://jefferai.org/2013/03/29/distillation/

Я могу читать ответы на stackoverflow, serverfault, блоги ... но мне кажется, что здесь много путаницы. И этот дьявол кроется в деталях: я понимаю «инцидент с KDE» так, что они должны были запускать git fsck после git clone, поскольку git clone не проверяет на наличие ошибок (но, опять же, ничего об этом в руководстве по git ...)

Итак: каков официальный способ резервного копирования живого репозитория git? Есть ли в руководстве что-нибудь о резервном копировании?

пакет git здесь полезно. Я уже давно использую это:

base_dir=/home/git
for gitrepo in `ls -d *.git`
do
 echo '**********[' ${gitrepo} ']***********'
 repo_name=${gitrepo%.git}
 echo cd ${base_dir}/${gitrepo}
 cd ${base_dir}/${gitrepo}
 backup_cmd="git bundle create /opt/git-backups/${repo_name}.bundle master"
 verify_command="git bundle verify /opt/git-backups/${repo_name}.bundle master"
 backup_cmd_all="git bundle create /opt/git-backups/${repo_name}-all.bundle --all"
 verify_command_all="git bundle verify /opt/git-backups/${repo_name}-all.bundle "
 echo -------- master only -------------------
 ${backup_cmd}
 echo -------- all -------------------
 ${backup_cmd_all}
 echo
 echo
done

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

Помните: резервная копия не создавалась, пока не была восстановлена.

Я не уверен, существует ли какой-либо «официальный» способ резервного копирования репозитория git, существует множество способов резервного копирования репозитория git, tar, zip, дампа файловой системы и т. Д., Это будет сильно зависеть от таких вещей, как размер окна резервного копирования.