25

Я планирую перейти с SVN на git. С помощью svn я просто копирую свою папку репо, когда хочу сделать резервную копию. Однако у Git его нет, так что мне делать?

Должен ли я создать клон на отдельном диске и обновить его, потянув из своего проекта? Тогда я могу записать / заархивировать эту папку, и она будет иметь всю историю?

Это, вероятно, очевидно, но я хочу убедиться, когда дело доходит до резервных копий. Я до сих пор делаю вид, что есть корневой репозиторий.

4 ответа4

17

Ответ Акиры правильный, но вы можете добавить --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
13

Вы просто копируете это. мерзавец действительно использует папку репо, это просто скрыто от обычного директивных. (Папка с именем .git в системах * nix, поэтому она появляется, только если вы используете ls -a . Я предполагаю, что он устанавливает атрибут "скрытый" в Windows, но я никогда не использовал git в среде Windows, поэтому я не уверен, как он там обрабатывается.)

10

Я использую Git Bundle. Для создания файла копии (одного файла резервной копии) выполните:

git bundle create backup.bundle master

Чтобы восстановить репозиторий с мастером ветвления, просто клонируйте файл backup.bundle:

git clone backup.bundle -b master my-project
2

создайте новый клон где-нибудь еще:

 % git clone yourepo somewhereelse

Кстати, у git есть папка репо, вы можете найти ее в своей рабочей копии в подкаталоге .git . у каждой рабочей копии есть эта "папка репо".

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .