У меня есть пустой Git репозиторий в одной сети, в которой много филиалов. Я хотел бы периодически передавать новые коммиты из этого исходного хранилища Git в зеркало в другой, не подключенной сети. Я могу запустить этот процесс, используя git bundle
:
# Export entire repo to a bundle file on network 1.
git bundle create repo.bundle --all
# Copy bundle file to network 2.
# ...
# On network 2, clone the bundle file to create a new bare repo from it.
git clone --mirror /path/to/repo.bundle
Это работает! Однако я хотел бы периодически экспортировать новые коммиты / ветки из сети 1 и передавать их в зеркало хранилища в сети 2. То есть, если я сделаю новый пакет позже:
# Time passes.
# Create a new bundle to get the new state of the repo. I could use --since arguments here
# to reduce the bundle size, but I won't do that here for brevity.
git bundle create repo-updated.bundle --all
# Copy bundle file to network 2.
# ...
# On network 2, how do I pull the new commits/branches into the bare repo mirror?
I Я не уверен, как "обновить" состояние чистого репо в сети 2, учитывая новый файл пакета. Я попытался git remote update
, но это похоже на fetch
только изменения, и он фактически не обновляет ни одну из ветвей в голом репо в сети 2. Есть ли одна команда, которую я могу запустить, используя обновленный файл пакета чтобы вернуть репо в сети 2 в то же состояние, в котором он находился в сети 1?