Git bundle --all: передать ветки без сервера

Категория: Git · Язык: Bash · Обновлено:

git bundle упаковывает Git-объекты и ссылки в один файл. Его можно перенести на машину без сетевого доступа и клонировать как локальный источник. Такой архив содержит историю, достижимую из выбранных ссылок, но не рабочие незакоммиченные файлы.

Создать и проверить bundle всех ссылок

Выполните команду из репозитория:

Bash
git bundle create ../project.bundle --all
git bundle verify ../project.bundle

--all включает refs репозитория, например локальные ветки и теги. Для передачи только одной ветки задайте её явно вместо --all, например:

Bash
git bundle create ../main.bundle main

На другой машине создайте новый каталог из архива:

Bash
git clone ../project.bundle project-copy

Скопируйте bundle отдельно от исходного репозитория и проверьте git bundle verify перед восстановлением. В bundle не входят незакоммиченные изменения, индекс, stash, hooks и настройки локального репозитория. Не используйте этот способ как копию рабочей папки.