Два идентичных репозитория git

Мы используем git для исходного кода нашего проекта, работая в большой команде. Сейчас около половины разработчиков уходят на локальную фазу проекта. Этот этап будет включать в себя тяжелое развитие, то есть много коммитов. В то же время другая оставшаяся половина также продолжит работу над кодом.

К сожалению, на месте будет только прерывистое и ненадежное подключение к Интернету. Тем не менее, очень важно, чтобы команда на месте могла синхронизировать (фиксировать / выдвигать / извлекать) свои изменения между собой. Но также важно, чтобы изменения, сделанные в "центральном" git -хранилище остальной частью команды в офисе, были доступны.

Поэтому я ищу установку, которая позволит локальной команде эффективно работать с использованием git, даже если интернет не работает в течение продолжительного периода времени, а также иметь возможность синхронизации с офисом и обратно, когда интернет доступен.

Есть ли простой и надежный способ сделать это?

Моя первая идея: взять с собой нетбук, чтобы он выступал в роли "сервера" и имел клон с хранилищем. Затем попросите команду на месте изменить свое происхождение на нетбук, а затем подтолкнуть и вытянуть его из нетбука. Но синхронизация с основным репозиторием вызывает у меня некоторые проблемы. Выполнение git push на нетбуке работает нормально, но git fetch не возвращает мне изменения, сделанные в основном репо. Кроме того, я беспокоюсь о том, что произойдет, если файл будет изменен в обоих репозиториях и возник конфликт - полагаю, кому-то понадобится поработать над нетбуком, чтобы разрешить конфликт и зафиксировать его, прежде чем произойдет синхронизация?

1 ответ

Решение

Ваша настройка должна работать, поэтому я не уверен, что не так с загрузкой. Тем не менее, когда дело доходит до извлечения из центрального репо вашей компании и разрешения конфликтов, это следует делать локально: при наличии подключения к Интернету один разработчик может извлекать данные из центрального репо, объединять и разрешать конфликты на своем собственном компьютере и выдвигать результаты как центрального репо, так и репо на месте. Я считаю, что никогда не следует работать непосредственно с хранилищем, которое используется в качестве сервера (и если это пустое хранилище, каким оно и должно быть, вы не можете работать непосредственно с ним, так как нет рабочей копии). Это также избавляет вас от настройки среды разработки на локальном сервере.

Кроме того, разработчики на месте не должны заменять origin с локальным хранилищем; скорее, они должны добавить новый пульт с git remote addи назовите это, например, onsite, Затем, когда кто-то хочет сделать pull, push или же fetchМожно выбрать, использовать ли центральное репо компании или локальное репо.

Другие вопросы по тегам