Резервное копирование проекта, который использует 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/\*
Другие вопросы по тегам