Экспорт git с историей версий
Мне нужно экспортировать содержимое репозитория git и импортировать его в целевой репозиторий. Я знаю две альтернативы, чтобы сделать это, но они не решают мою проблему.
a) Добавьте исходный репозиторий в качестве удаленного и выполните слияние с целью. Я не могу использовать это, так как оба репозитория не находятся в одной сети.
b) Используйте git архив и скопируйте содержимое в цель. В этом архиве git информация о ревизии теряется.
Мне нужно что-то, что делает архив вместе с историей версий и позволяет мне объединиться в цель. Как это можно сделать?
Ответы
Ответ 1
git bundle
предоставляется для этой цели.
Пример:
-
Связывает исходный репозиторий полностью
git bundle create my_repo.bundle --all
-
Возьмите `my_repo.bundle '', где ваша цель
-
Из вашей цели загрузите объекты фиксации источника
git bundle unbundle my_repo.bundle
... с какого момента вы можете объединить/переустановить/вишня - выберите нужный источник в своем целевом репозитории для вашего сердечного контента.
В противном случае вытаскивание работает одинаково:
git pull my_repo.bundle
По сравнению с клонированием пакеты проще переносить, потому что они меньше по мере того, как ваши файлы не переносятся в их проверенном состоянии.
Другие причины использования пакета:
-
В отличие от использования clone --bare
(который не проверяет ваши файлы)
пучки создаются и упаковываются как один файл, поэтому вам не нужны
дополнительное сжатие/архивирование.
-
Вы также можете просто архивировать исходный репозиторий (или просто
.git), но вы будете переносить весь избыточный кеш и
мусор, который создается под .git/.
Ответ 2
Git клонировать хранилище на USB-накопитель, ноутбук или какой-либо другой носитель передачи данных. Подключитесь к другой машине, добавьте среду как удаленный и потяните/слейте изменения оттуда...
Любой клон из репозитория фактически содержит всю историю, поэтому вопрос в том, как вы можете получить клон на другой машине.
Также см.: этот вопрос
Ответ 3
Вы хотите создать вилку своего текущего репозитория.
Дайте мне знать, если я прав:
Вы хотите клонировать конкретный репозиторий git. Работайте над клоном, а затем объедините изменения в исходный репозиторий?
Это делается для создания вилки вашего репозитория, а затем вытаскивания изменений из исходного источника для изменений фиксации.
Ответ 4
Вы можете просто закрепить всю папку репозитория, а затем скопировать ее на целевую рабочую станцию (через USB-накопитель и т.д.) и добавить этот локальный репозиторий в качестве удаленного репозитория. Затем вы можете получить и слить.