Как сделать резервную копию git-репо?
Я планирую перейти с SVN на git. С svn я просто копирую свою папку репозитория, когда хочу сделать резервную копию. Однако у Git его нет, так что мне делать?
Должен ли я создать клон на отдельном диске и обновить его, извлекая из моего проекта? Тогда я могу записать / заархивировать эту папку, и она будет иметь всю историю?
Это, вероятно, очевидно, но я хочу убедиться, когда дело доходит до резервных копий. Я до сих пор делаю вид, что есть хранилище корней.
5 ответов
Вы просто копируете это. Git использует папку репо, она просто скрыта от обычных представлений каталогов. (Папка называется .git
в системах *nix, поэтому он появляется только при использовании ls -a
, Я предполагаю, что он устанавливает атрибут "скрытый" в Windows, но я никогда не использовал git в среде Windows, поэтому я не уверен, как он там обрабатывается.)
Ответ Акиры правильный, но вы можете добавить --mirror, чтобы создать голое хранилище (для резервной копии немного меньшего размера).
Мы используем следующую стратегию (почти точно):
git clone --mirror yourrepo backup.repo
tar cjf backup.repo.tar.bz2 backup.repo
scp backup.tar.bz2 ssh://somewhereelse
Затем, чтобы восстановить из вашей резервной копии:
tar xjf backup.repo.tar.bz2
git clone backup.repo yourrepo
Я использую Git Bundle. Для создания файла копии (одного файла резервной копии) выполните:
git bundle create backup.bundle master
Чтобы восстановить репозиторий с мастером веток, просто клонируйте файл backup.bundle:
git clone backup.bundle -b master my-project
Создайте новый клон где-нибудь еще:
% git clone yourepo somewhereelse
Кстати, у git есть папка репозитория, вы можете найти ее в своей рабочей копии под подкаталогом .git
, каждая рабочая копия имеет эту "папку репо".
Я не хочу повторять другие ответы (резервное копирование каталога .git — хорошее начало, которое должно сработать, если вы единственный человек, работающий над репозиторием), поэтому я просто добавлю, что вы можете попробовать нашу резервную копию GitHub. Полное раскрытие :
я работайте в компании, которая создает это решение для резервного копирования.