Наша команда должна работать с несколькими файлами. Чтобы избежать конфликтов и иметь историю, мы хотим использовать git. Проблема заключается в следующем:Как работать с двумя репозиториями по тем же данным, но в разных сетях (которые нельзя подключить)?
- С понедельника по четверг большинство, но не все люди будут работать внутри сети А с некоторых настольных ПК.
- С пятницы по воскресенье большинство, но не все люди будут работать внутри сети B со своими ноутбуками
- По соображениям безопасности, нет никакой возможности для прямого подключения к сети A и B, обмен данными возможен только с флэш-накопителя USB.
- Жизненно важно сохранить историю изменений в проекте.
После проведения некоторых исследований и чтения нескольких ответов (например, Two identical git repositories) У меня есть следующий план, чтобы выполнить наши требования, но я не 200% уверен, что если он будет работать (или, если это может быть сделано проще) и я хотел бы иметь некоторую обратную связь от вас:
- Начнет с голым хранилищем на сервере в сеть A. Everbody клонов этого хранилище на настольных ПК и работает с ним (вытягивать из и подталкивая к репозиторий на сервере в сети A) на одной ведущей ветке.
- В первый четверг один парень (позвоните нам на git-admin) создает новый голый репозиторий на своем локальном настольном ПК в сети A, добавляет его как новый удаленный репозиторий из сети A и подталкивает все данные к этому локальный открытый репозиторий
- git admin затем помещает этот голый репозиторий на свой USB-накопитель и копирует его на сервер в сети B. Теперь все, работающие в сети B со своими ноутбуками, клонируют этот репозиторий и тянут к нему/удаляет его
Так что так хорошо, но теперь у нас есть два центральных хранилища, и может случиться так, что и в сети, и в A люди работают над ним. Таким образом, жизненно важно объединить их, по крайней мере, раз в неделю, чтобы поддерживать их. История должна быть сохранена на обоих хранилищах! Это был я думаю, что это становится немного сложнее:
- Каждый понедельник, мерзавец администратор втягивает в последний раз из хранилища в сети B, начинается новый голый репозиторий на своем ноутбуке, добавляет его в качестве нового пульта дистанционного управления от его хранилище сети B и выталкивает все данные в этот локальный голый репозиторий на своем ноутбуке.
- Затем он помещает этот голый репозиторий на свой флеш-накопитель и копирует его на своем ПК в сети A. Затем сначала он вытаскивает из центрального репозитория в сети A, чтобы быть в курсе последних событий. После этого он добавляет открытую сеть форм-хранилища B в качестве нового удаленного своего репозитория, клонированного из сети A, извлекает из него, решает все конфликты и толкает как исходный удаленный репозиторий в сети A, так и локальный голый репозиторий, который был скопирован из сети B .
- Теперь центральный репозиторий в сети A обновлен. Затем он берет голый репозиторий, снова кладет его на свой USB-накопитель, кладет на свой ноутбук в сеть B, добавляет его как новый пульт для репозитория сети B, тянет, сливается и толкает в центральный репозиторий в сети B.
Этот процесс будет повторяться каждый понедельник и четверг (наоборот). Любые предложения, чтобы сделать это проще или это путь?Я не уверен, что нужно работать с голыми репозиториями, и если бы можно было просто скопировать нормальные обновленные локальные хранилища git-admin в соответствующую сеть и добавить центральные репозитории сетей A и B как новый пульт дистанционного управления (в зависимости от того, в котором он работает) и нажатие и вытягивание из него.
Извините за стену с текстом и благодарю вас за помощь!