Резервное копирование проекта, который использует git

Я сжигаю свои вещи на dvd, прежде чем быстро переустановить. Никогда не делайте этого с git, будучи последним пользователем. Поэтому я просто проверяю с тобой парни. Если я правильно понял, мне просто нужно создать резервную копию моего проекта project_name (у которого есть .git внутри него), наблюдая за скрытыми файлами вместе с ним, и когда я копирую его на "новую" машину и снова устанавливаю git, я как ничего не случилось? Правильно?

Ответ 1

Угу. это так.

Ответ 2

Если вы хотите создавать резервные копии файлов проекта (без истории), вы можете использовать git archive (в этом случае у меня нет "смотреть скрытый файл" )

script git-archive-all.sh фактически заархивирует все репозитории и подмодули git в текущем пути.

Полезно для создания одного tar файла суперпроекта git, который содержит другие подмодули.


Как Чарльз Бейли справедливо упоминает в комментариях git bundle является более подходящим, чтобы сохранить историю. (git bundleбыл введен в февраль 2007 г.).

См. Резервное копирование репозитория git с пакетом git

git bundle был разработан, чтобы разрешить передачу git, если нет прямого соединения между репозиториями (то есть: в автономном режиме), но использование патчей не является опцией из-за большого количества коммитов и нескольких ветвей.
A git bundle - это всего лишь один файл, который можно легко создать и снова импортировать, поскольку его можно рассматривать как другой пульт. Быстрый пример:

[email protected]:~/devel$ git bundle create ~/devel.bdl master test 

и пакет сохраняется в ~/devel.bdl, содержащем мои мастерские и тестовые ветки.
Если я сейчас в репозитории B, я просто использую [email protected]:~$ git ls-remote devel.bdl, который показывает мне ветки, хранящиеся в комплекте.
Чтобы использовать пакет, я просто рассматриваю его как удаленный, используя git fetch (например)

[email protected]:~/git/repoB$ git fetch ~/devel.bdl refs/heads/\*:refs/remotes/bundle/\*