Если вы хотите создавать резервные копии только файлов проекта (без истории), вы можете использовать git archive
(таким образом, мне не нужно «искать скрытый файл»)
Сценарий git-archive-all.sh
фактически заархивирует все git-репозитории и подмодули по текущему пути.
Полезно для создания одного tar-файла супер-проекта git, который содержит другие подмодули.
Как Чарльз Бейли справедливо упоминает в комментариях, 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, я просто использую jojo@dualtron:~$ git ls-remote devel.bdl
, который показывает мне ветви, хранящиеся в связке.
Чтобы использовать пакет, я просто обращаюсь с ним как с дистанционным, используя git fetch (например)
jojo@dualtron:~/git/repoB$ git fetch ~/devel.bdl refs/heads/\*:refs/remotes/bundle/\*