Резервное копирование проекта, который использует GIT
Я записываю свои вещи на DVD перед быстрой переустановкой. Никогда не делал этого с git, будучи недавним пользователем. Так что я просто проверяю вас, ребята. Если я правильно понял, мне просто нужно сделать резервную копию моего каталога проекта имя_проекта (в котором есть .git внутри), отслеживая скрытые файлы вместе с ним, и когда я копирую его на "новый" компьютер и снова устанавливаю git, я возобновляю как ничего не случилось? Правильный?
2 ответа
Если вы хотите сделать резервную копию только файлов проекта (без истории), вы можете использовать git archive
(таким образом, мне не нужно "искать скрытый файл")
Сценарий git-archive-all.sh
фактически заархивирует все git-репозитории и подмодули в текущем пути.
Полезно для создания одного tar-файла из суперпроекта git, который содержит другие подмодули.
Как справедливо упоминает CB Bailey в комментариях, git bundle
более уместно, чтобы сохранить историю. (git bundle
был представлен в феврале 2007 года).
См. Резервное копирование репозитория git с помощью git bundle.
git bundle
был разработан, чтобы разрешить передачу коммитов git, когда нет прямой связи между репозиториями (то есть: офлайн), но использование патчей не вариант из-за большого количества коммитов и нескольких веток.
git bundle
это всего лишь один файл, который можно очень легко создать и снова импортировать, так как его можно рассматривать как другой пульт. Быстрый пример:
jojo@dualtron:~/devel$ git bundle create ~/devel.bdl master test
и пакет сохраняется в
~/devel.bdl
содержащий мой мастер и тестовые ветви.
Если я сейчас нахожусь в репозитории B I, просто используйтеjojo@dualtron:~$ git ls-remote devel.bdl
который показывает мне ветви, хранящиеся в связке.
Чтобы использовать пакет, я просто обращаюсь с ним как с удаленным, используя git fetch (например)
jojo@dualtron:~/git/repoB$ git fetch ~/devel.bdl refs/heads/\*:refs/remotes/bundle/\*