Команда
git bundle используется для упаковки репозитория или его части в один файл. Этот файл можно передать, скопировать или сохранить, а затем использовать для восстановления или обновления репозитория в другом месте. Основное назначение этой команды — перенос изменений без необходимости наличия сетевого подключения, например, в случаях, когда доступ к удалённому репозиторию ограничен.Основные случаи использования git bundle:
1. Передача репозитория офлайн:
Если репозиторий большой, но доступ к сети отсутствует, можно создать файл с полным содержимым репозитория и передать его через USB-накопитель или другое физическое устройство.
2.Обновление репозитория офлайн:
Если нужно синхронизировать изменения между двумя репозиториями без доступа к сети, можно упаковать изменения в bundle и передать его.
3. Создание резервной копии:
git bundle может использоваться для создания архива репозитория с сохранением всей истории.4. Доставка изменений:
Это удобный способ передать патчи или ветки, которые можно позже интегрировать в другой репозиторий.
Примеры использования:
Создание полного архива репозитория:
git bundle create my-repo.bundle --allЗдесь флаг
--all указывает, что нужно упаковать все ветки и историю.Упаковка определённой ветки:
git bundle create my-feature.bundle main
Это создаст архив с содержимым только ветки main.
Проверка содержимого bundle:
git bundle verify my-repo.bundleПроверяет, что файл корректен и пригоден для использования.
Клонирование из bundle:
git clone my-repo.bundle my-new-repo