Каков наилучший способ создать резервную копию всего репозитория git на внешнем диске? - PullRequest
18 голосов
/ 07 декабря 2010

Итак, я хочу иметь возможность создавать резервные копии git-репозитория, который может иметь несколько веток на внешнем жестком диске, а затем иметь возможность скопировать его обратно на мой локальный компьютер и работать с ним как обычно? Я попытался просто скопировать папку рабочего каталога, содержащую каталог .git, и это сработало. Тем не менее, мне было интересно, если это был лучший способ или у него были подводные камни позже.

Ответы [ 6 ]

21 голосов
/ 07 декабря 2010

Копирование всей рабочей копии с использованием обычных команд копирования файловой системы работает нормально.Вы также можете архивировать / архивировать резервную копию.

Если вас беспокоит дисковое пространство, вы также можете посмотреть на « git bundle », который может создавать файлы меньшего размера.* Вы также можете получить инкрементные резервные копии, просто запустив новое хранилище на внешнем диске (git clone), а затем извлекая изменения каждый раз (git pull).Нет большой разницы между резервной копией и рабочей копией в распределенной системе, такой как git.

7 голосов
/ 07 декабря 2010

Если у вас нет каких-либо изменений для резервного копирования в рабочем дереве, вы можете использовать git clone --mirror, чтобы создать чистый клон со всеми копиями ссылок (веток, тегов, абсолютно всего).Затем вы можете использовать git push --mirror, чтобы обновлять его постепенно.Это то, для чего он предназначен.

Копирование всего репозитория, включая рабочее дерево, также работает, но делать это постепенно, и, очевидно, занимает больше места.

3 голосов
/ 07 декабря 2010

Это единственный способ сделать это, кроме клонирования репозитория на внешний диск. Но любой из этих подходов примерно эквивалентен, за исключением того, что при копировании вашего клона будут сохранены все настройки конфигурации репо.

2 голосов
/ 07 декабря 2010

Подведение итогов

  • Вы можете просто скопировать чертов каталог, конечно, он работает.
  • Вы можете клонировать.
  • Вы можете git bundle или git archive

Вы также можете,

, который вы можете записать в один файл, из которого вы сможете импортировать позже.

$ git fast-export --all | (cd /empty/repository && git fast-import)
1 голос
/ 07 декабря 2010

Копирование целиком или использование инструмента синхронизации - это хорошо. Репо полностью укомплектовано и портативно.

1 голос
/ 07 декабря 2010

Здесь нет подводных камней, git - полностью распределенный SCM.Копирование рабочей копии в каталог .git является достаточным резервным копированием.

...