Синхронизация репозиториев без возможности проталкивать и извлекать коммиты

На данный момент я не могу использовать git-сервер, поэтому я использую одну из моих любимых функций git, которая превращает любой каталог на моем компьютере в git-репо (только git init вещь).

Я использую это, потому что я был единственным программистом, и я мог отслеживать свои собственные вещи. Сейчас все немного изменилось, и я работаю с небольшой командой. Некоторые другие вещи, однако, не изменились, и я все еще не могу иметь git-сервер, поэтому локальные репозитории по-прежнему являются единственным вариантом.

Самая простая процедура была в том, чтобы распространить код среди других парней, как архивировать мой репозиторий и пересылать его. Когда они закончили, они отправили его мне, и я заменил исходный репо. Работает вроде хорошо, так как у нас почти никогда не бывает двух человек, работающих в одном репо из-за организации проектов.

Теперь я хотел бы сделать что-то более последовательное, например, объединить все, что мне отправляют, в мой локальный репозиторий. Этот пример позволил бы мне в конечном итоге иметь двух человек, работающих в одном репо (или, возможно, его подмножестве).

Я читал о скриптах git patch. Но, честно говоря, я не чувствовал себя очень комфортно с решением. Во-первых, потому что в моих первоначальных экспериментах это не сработало сразу (да, я знаю, это просто вопрос лучшего понимания, но все же не так интуитивно, как остальная часть git), а во-вторых, потому что мои репозитории также будут содержать двоичные файлы, которые я нужно также контролировать... не уверен, что патчи справятся с этим:/

Какую процедуру вы, ребята, предложите организовать? есть ли команда, которая позволила бы мне объединить репозитории так, как я описал?

Спасибо!

е.

3 ответа

Решение

Как насчет отправки друг другу путей?

git format-patch а также git am может удовлетворить ваши потребности. Я использовал его в прошлом, и он работает достаточно хорошо для отправки нечастых изменений.

Если у вас есть какой-то способ настроить общий каталог, даже если он находится на чьем-то компьютере, вы можете сделать git init там и пусть все добавляют этот репо как удаленный. Это не так чисто, как иметь gitolite или что-то вроде SSH, но должно работать просто отлично.

Хорошая вещь в распределенном контроле версий заключается в том, что вам не нужен только один сервер, к которому все могут обращаться постоянно. Вы можете иметь столько серверов, сколько вам нужно. Вы можете настроить сервер или общий каталог внутри брандмауэра компании, для всех, у кого есть доступ к использованию, и чтобы ваши удаленные сотрудники настраивали свой собственный локальный ssh ​​или что-то, что вы можете при необходимости использовать.

Если вы хотите продолжить работу с почтовыми репозиториями в виде zip-файлов, все, что вам нужно сделать, это вместо замены основного локального репо, распаковать его в отдельную папку, а затем сделать git pull из этой папки в основной репо, чтобы объединить его. Не так эффективно, как пропускная способность git format-patch, но немного более знакомый в вашем конкретном рабочем процессе.

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