Я просто хотел бы добавить немного поворота к вещам. Информация в других постах кажется верной, но я хотел бы упомянуть несколько дополнительных вещей, которые я делаю на практике.
Если я делаю
git remote -v
Я получаю такую информацию
USB_F file:///f/Git_repositories/projectname.git (fetch)
USB_F file:///f/Git_repositories/projectname.git (push)
USB_G file:///g/Git_repositories/projectname.git (fetch)
USB_G file:///g/Git_repositories/projectname.git (push)
По сути, я определил несколько пультов с именами USB, а не только один, как предлагалось, поскольку буква диска, назначенная моему устройству USB, меняется в зависимости от порта, в который я его вставляю.
Затем я запускаю скрипт с таким содержимым
cd /path/to/projectname
if [ -d /f/Git_repositories/projectname.git ]
then
git push USB_F --all
git push USB_F --tags
fi
if [ -d /g/Git_repositories/projectname.git ]
then
git push USB_G --all
git push USB_G --tags
fi
Цель состоит в том, чтобы перенести все ветви и все теги в USB-хранилище, если оно существует и где бы оно ни было. (Флаг -d проверяет существование каталога репозитория git, а условный код выполняется только в том случае, если каталог существует.)
В первоначальном вопросе говорилось: У меня есть несколько местных ветвей на каждом из них. Я не хочу отправлять эти ветки на удаленный сервер, просто держу их локальными. Как я могу синхронизировать ...
Команда push -all и push --tags выполняет эту синхронизацию, следя за тем, чтобы все ветви и теги помещались в репозиторий USB, даже новые, такие как USB хранилище не было в курсе. Там нет по умолчанию мастер или необходимости знать имена филиалов и обрабатывать их по одному.
Я запускаю это для целей резервного копирования, поэтому я показал только некоторые аспекты и сократил количество проектов и репозиториев. На самом деле я копирую несколько проектов в разные места, но здесь важны только повторяющиеся элементы USB.
Еще одна вещь, которая довольно очевидна, но о которой я не упомянул, это то, что для синхронизации ПК A и ПК B вам потребуется
1. sync PC A and the USB device
2. sync PC B and the USB device
3. sync PC A and the USB device again!
Или смотреть иначе, иди
PC A -> USB -> PC B
PC B -> USB -> PC A
так, чтобы в конечном итоге ветви и теги были одинаковыми на двух машинах.