Два идентичных репозитория git - PullRequest
2 голосов
/ 28 марта 2011

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

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

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

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

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

1 Ответ

6 голосов
/ 28 марта 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...