2016-10-31 3 views
1

Предположим, что мы 10 программистов проекта, работаем с git. Предположим, мы не хотим использовать репозиторий удаленного Интернета (github), а также не удаленный сетевой централизованный репозиторий git.git без централизованного удаленного хранилища

  • Как мы можем все синхронизировать?
  • Каждый должен объявлять другой репозиторий программистов как удаленный репозиторий один за другим?
+0

У вас не может быть * локального * сервера? – Biffen

+0

уверен, что смогу. Я прошу это понять теоретический рабочий процесс git без централизованного репозитория. – user5157427

+0

Вы можете настроить зеркала? Я не уверен, что понимаю, почему вы не хотите центрального репо? – hjpotter92

ответ

1

Если вы не хотите использовать выделенный сервер, всегда есть возможность использовать один из локальных репозиториев разработчиков как «источник», который каждый другой клон разработчика.

Это можно легко сделать с помощью SSH:

  1. Настройка сервера SSH на машине происхождения.
  2. Предоставьте каждому разработчику SSH доступ к машине (либо с использованием отдельных учетных записей, либо с помощью общей учетной записи, например, «разработчик»).
  3. Попросите каждого разработчика клонировать хранилище с этой машины.

Клонирование с помощью SSH можно сделать так:

git clone [email protected]:/full/path/to/repo/.git 

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

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

Аналогичным образом можно синхронизировать с несколькими различными машинами, если вы так хотите, путем создания более SSH пультов ДУ, например:

git remote add machine2 [email protected]:/some/other/path/to/repo/.git 
git fetch machine2 
... 
git push machine2 my-new-branch 

... и т.д..

Однако, есть улов: По умолчанию вы не можете нажать изменения в отрасли, которая в настоящее время проверяется на удаленной машине (мерзавец предупредит вас, если вы попытаетесь сделать это, и, откровенно говоря, вы do not want to do it anyway) , Следовательно, вам придётся разработать стратегию ветвления, которая позволяет избежать таких ситуаций (например, если все разработчики работают над отдельными ветвями функций, а не с общей ветвью, это хороший старт).

С учетом этого я бы настоятельно рекомендовал с использованием локального выделенного сервера с открытым репозиторием (он обычно всегда в сети, и у вас нет проблем с проверенными ветвями на машине разработчика).Сервер не обязательно должен быть причудливым - что-то простое, как малина Pi должно хватить в небольшой команде (есть простой учебник here).

0

Думаю, вы получите точку, читающую official reference. Ради вашего времени вы должны подумать о том, чтобы продвигать одного разработчика в интеграционный менеджер, который держит себе главный репозиторий .


Или, просто, как есть, установка внутреннего сервера мерзавец (голый репозиторий, хотя я рекомендую использовать gitolite), который является то, что мы делаем на работе, резервного копирования и такие вещи приходят бесплатно там.

Смежные вопросы