Ответ 1
Связка!
Рабочий процесс с пакетом git будет по существу таким же, как и любой другой рабочий процесс. Это может показаться не очень полезным советом, но вот он: используйте любой рабочий процесс, который вы обычно используете, и замените "push/pull" на "переносите связку здесь туда на флешку, затем потяните".
У man-страницы действительно есть довольно хорошее пошаговое руководство для этого, хотя это скорее односторонний пример. Для полноты, здесь немного измененная версия, показывающая, как перемещать информацию в обоих направлениях:
# on hostA, the initial home of the repo
hostA$ git bundle create hostA.bundle --branches --tags
# transfer the bundle to hostB, and continue:
hostB$ git clone /path/to/hostA.bundle my-repo
# you now have a clone, complete with remote branches and tags
# just to make it a little more obvious, rename the remote:
hostB$ git remote rename origin hostA
# make some commits on hostB; time to transfer back to hostA
# use the known master branch of hostA as a basis
hostB$ git bundle create hostB.bundle ^hostA/master --branches --tags
# copy the bundle back over to hostA and continue:
hostA$ git remote add hostB /path/to/hostB.bundle
# fetch all the refs from the remote (creating remote branches like hostB/master)
hostA$ git fetch hostB
# pull from hostB master, for example
hostA$ git pull
# make some commits on hostA; time to transfer to hostB
# again, use the known master branch as a basis
hostA$ git bundle create hostA.bundle ^hostB/master --branches --tags
# copy the bundle to hostB, **replacing** the original bundle
# update all the refs
hostB$ git fetch hostA
# and so on and so on
Ключевым моментом является то, что вы можете добавить пакет как удаленный и взаимодействовать с ним так же, как и с любым другим удаленным. Чтобы обновить этот пульт, просто добавьте новый пакет, заменив предыдущий.
Я также принял несколько иной подход к выбору основы. Страница руководства использует теги, всегда обновляемые с последними ссылками, которые были переданы другому хосту. Я просто использовал удаленные ветки, которые будут ссылаться на последние ссылки, переданные с другого хоста. Это немного неэффективно; вы в конечном итоге свяжете больше, чем вам нужно, поскольку это на один шаг назад. Но флеш-накопители большие, пакеты небольшие, и с помощью ссылок, которые у вас уже есть, вместо того, чтобы делать дополнительный шаг, и будьте осторожны с тегами, он сэкономит много сил.
Единственное, что затрудняет пучки, это то, что вы не можете нажимать на них, и вы не можете "переупаковать" их. Если вам нужен комплект, основанный на новой базе, вы должны его воссоздать. Если вам нужны новые коммиты, вы должны их воссоздать. Эта хлопот порождает мое следующее предложение...
Репо на флэш-накопителе
Честно говоря, если ваше репо действительно велико, это может быть так же просто. Поместите голый клон на флэш-накопитель, и вы можете нажать и извлечь его с обоих компьютеров. Относитесь к нему, как к сетевому соединению. Нужно перенести на центральный репо? Подключите его!