Git push/pull между членами команды локальные репозитории

Допустим, есть команда с 4 разработчиками. У нас также есть центральный репозиторий для нашего проекта. Разработчики выталкивают и извлекают из центрального хранилища. Здесь (в децентрализованном, но централизованном разделе) говорится, что его можно нажать/вытащить между членами команды локальные репозитории.

Каждый разработчик тянет и толкает в исходное положение. Но помимо централизованного двухсторонние отношения, каждый разработчик может также другие сверстники, чтобы сформировать подгруппы... Технически это больше не означает чем то, что Алиса определила удаленный Git, названный bob, указав на Bobs хранилище и наоборот

Теперь вопрос заключается в том, как определить удаленное имя bob, указывающее на репозиторий Боба. Если это важно, разработчики могут использовать разные операционные системы.

Ответы

Ответ 1

Это очень распространенная вещь, как Алиса и Боб должны работать над некоторой функциональностью вместе. Тем временем разработка должна осуществляться разными подразделениями разными разработчиками.

Простой подход:

  • Создайте новую ветку sprint_1, Alice и bob checkout для sprint_1
  • Все изменения, связанные с функциональностью, должны быть выполнены здесь.
  • Операции push и pull должны выполняться с помощью

    git pull origin sprint_1  and git push origin sprint_1
    

Когда изменения сделаны, а sprint_1 имеет стабильный код, он может быть объединен с другой веткой. Если код sprint_1 прошел долгий путь, рекомендуется перераспределить ветвь, чем слияние, чтобы избежать конфликтов или выбора вишни.

Ответ 2

Подобно GIT клонировать репо через локальную файловую систему в окнах

Per J.F.Sebastian ответ:

$ git clone --no-hardlinks /path/to/repo

Вышеупомянутая команда использует нотацию POSIX для каталога с вашим Репозиторий git. Для Windows это (каталог C:/path/to/repo содержит .git):

C:\some\dir\> git clone --local file:///C:/path/to/repo my_project

Репозиторий будет клонирован к C:\some\dir\my_project. Если вы опустите file:///part then подразумевается опция -local.

Ответ 3

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

В следующей статье использование git daemon объясняется очень хорошо, чтобы решить эту проблему. Я просто поставлю краткую копию содержания здесь: http://railsware.com/blog/2013/09/19/taming-the-git-daemon-to-quickly-share-git-repository/

Настройте следующие псевдонимы для доступа (доступа) для чтения или чтения/записи (концентратора) к вашим репозиториям:

$ git config --global alias.serve "!git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose"
$ git config --global alias.hub "!git daemon --base-path=. --export-all --enable=receive-pack --reuseaddr --informative-errors --verbose"

Затем на хосте просто выполните git serve или git hub из каталога, в котором хранятся репозитории, которые вы хотите разделить. Теперь на клиенте можно выполнить git clone git://x.x.x.x/path/to/repo для доступа к локальному репозиторию на хосте!

Для пользователей Windows:

  • Используйте двойные кавычки в командах для настройки псевдонимов
  • Обязательно "вешайте" командную строку, чтобы она не выводила какую-либо строку, щелкнув правой кнопкой мыши по строке заголовка и выбрав "Правка" > "Отметить". В противном случае соединения с клиентами могут быть прерваны из-за ошибки в git (согласно комментарию в сообщении блога).

Ответ 4

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

Ответ 5

Если вы устанавливаете учетную запись пользователя на хосте и получаете доступ к репо, кто-то другой может нажать/выбрать SSH с установлением или без установления имени "remote".

git push [email protected]:/path/to/repo branch

Если вы часто используете общий код, вы можете настроить именованный пульт, чтобы запомнить путь к серверу:

git remote add remotename [email protected]:/path/to/repo

Если это нормально, что совместное использование подразумевает тесную координацию (и, возможно, очень свободную защиту), вы можете запустить кратковременный git daemon на "хозяине" по мере необходимости: git эквивалент "hg serve" ? В этом случае все вышеприведенные команды совместного доступа по-прежнему применяются, но [email protected]:/path будет заменен на git://host/. См. Также git документация демона.

В качестве альтернативы вы можете настроить отдельный выделенный репозиторий для промежуточного обмена: Как настроить промежуточный репозиторий в git?