Настройка Git для команды из 3 человек? - PullRequest
15 голосов
/ 15 февраля 2009

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

  1. Ситуация A: Черновики и файлы могут обмениваться между 3 людьми. писатель может только подтолкнуть файлы к хранилище.
  2. Ситуация B: Аналогично описанному выше, но все товарищи по команде могут выгружать файлы в хранилище.

Общие проблемы о ситуации A

  • Как настроить удаленные ветви для людей A, B и C, чтобы члены группы могли видеть файлы, которыми их члены хотят поделиться?
  • Как вы можете назначить человека А диктатором, который может только вносить изменения в священное хранилище?

Первоначальные проблемы с ситуацией A

  1. Как вы можете настроить репозиторий Git, куда люди A, B и C могут тянуть? Я предполагаю, что Git уже успешно установлен в репозиторий
  2. Как вы можете разрешить писателю только толкать?

Дополнительные проблемы в обеих ситуациях

Ответы [ 4 ]

13 голосов
/ 15 февраля 2009

Ситуация A

Похоже, вы хотите настроить рабочий процесс менеджера интеграции . В этом сценарии человек А создает начальное хранилище, которое является священным хранилищем. Каждый человек, A, B и C, клонирует этот репозиторий для своей личной работы. Когда у человека B или C есть что-то, что он хочет, чтобы A включил в репозиторий для совместного использования, он передает это в свой локальный репозиторий и просит A извлечь из своего репозитория ( pull request ); человек A настраивает remote s для репозиториев человека B и человека C, а затем может git pull personB или git pull personB объединить изменения. Человек А затем git push s объединяет изменения в священном хранилище.

Вы можете настроить клонирование и использование различных видов транспорта. Проще всего использовать протокол git поверх ssh. например.,

  1. Персона А создает священное хранилище: см. «Создание удаленного хранилища» на этой странице из 37 сигналов . Допустим, это в /local/git/project.git на sharedhost. Вы можете опустить --shared=group, так как хотите, чтобы это был интеграционный репозиторий. (Доступ для записи здесь защищен правами доступа к файлам Unix.)
  2. Лица A, B и C в своих домашних каталогах клонируют этот репозиторий.

    cd ~/src
    git clone ssh://sharedhost//local/git/project.git
    cd project # edit files in here.
    git commit
    
  3. Персона A устанавливает пульты для репозиториев B и C.

    git remote add personB ssh://sharedhost/~b/src/project
    git remote add personC ssh://sharedhost/~c/src/project
    
  4. Теперь человек А может git pull personB получить изменения Б. Когда А доволен, он git push отправит недавно объединенные изменения в общий репозиторий, а В и С могут git pull получить их.

Если настройка репозиториев звучит немного сложно, вы можете заплатить провайдеру, например GitHub , за все хостинг общих репозиториев git. У них также есть поддержка, где они могут помочь вам с проблемами. Для меня я обнаружил, что самая сложная часть - это понимание потока коммитов. Как только вы это получите, все станет более понятным. Это обсуждение на gitready.com может помочь вам кое-что прояснить. Существует также скринкаст , который охватывает аналогичный материал.

1 голос
/ 16 февраля 2009
  1. Как вы можете создать Git-репозиторий, где люди A, B и C можно тянуть?

Вам необходимо использовать ssh -protocol (ssh username @ ipAddress) и предоставить ssh-доступ 3 людям, предоставив им учетную запись на компьютере, на котором размещено хранилище ( Source ).

Я рекомендую предоставить ключи SSH для членов вашей команды. Пожалуйста, смотрите сообщение . Это позволяет им клонировать, запустив, например:

git clone user@machine:/path/to/repo.git

Сложная проблема

Как вы можете предоставить аккаунт на 3 люди

Если ваши файлы должны быть конфиденциальными, я рекомендую вам иметь учетную запись на Github, которая стоит вам несколько долларов. Вы также можете настроить репо на своем сервере с помощью Gitosis.

Если ваши файлы могут быть открыты, я рекомендую вам использовать Github, поскольку он бесплатен для этой цели.


Более развитая проблема

Как вы можете добавить пользователя в свой Git хранилище

Вы можете добавить пользователя в свою команду, запустив следующий код в своей ветке Git

git add remote UserName ssh://ADDressToTheRepo

Пример команды

git add remote schacon git://github.com/schacon/ticgit.git

Более-более развитая проблема

Как вы можете добавить ветку вашего друга к твоему мерзавцу?

Пожалуйста, смотрите мой ответ на ветке .

0 голосов
/ 23 мая 2009

Как эффективно сообщать об ошибках в твои товарищи по команде?

У меня была проблема с сообщением об ошибках и запросах функций моим товарищам по команде.

Программное обеспечение TicGit решает проблему для меня. Это система тикетов для Git, которую вы можете установить, просто настроив ее как отдельную ветку для вашего проекта.

0 голосов
/ 09 марта 2009

Один предложил мне использовать Гитоз, который поднял новую проблему : Как вы можете настроить Gitosis для своего сервера, сначала настроив Python-setuptools, если у вас нет доступа к sudo?

Решение для установки Gitosis : Пожалуйста, смотрите пост для установки новейшего Python. Обратите внимание, что ваша система, вероятно, имеет старый Python. Вы не можете обновить системный Python без обновления всей ОС. Например, вы не можете обновить Python для Mac Leopard, потому что система зависит от него.

Теперь вы можете начать установку python-setuptools. Пожалуйста, смотрите сообщение , чтобы установить их.

...