Настройка Git для команды из 3 человек?

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

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

Общие проблемы, связанные с ситуацией A

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

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

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

Ответы

Ответ 1

Ситуация A

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

Вы можете настроить клонирование и нажатие на различные транспорты. Самый простой способ - использовать протокол git по ssh. например.

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

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

    git remote add personB ssh://sharedhost/~b/src/project
    git remote add personC ssh://sharedhost/~c/src/project
    
  • Теперь человек A может git pull personB извлечь B-изменения. Когда A будет счастлив, он будет git push, чтобы нажимать вновь объединенные изменения на общее репо, а B и C могут git pull извлекать их.

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

Ответ 2

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

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

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

git clone [email protected]:/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

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

Как вы можете добавить свою ветку друга к вашему Git?

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

Ответ 3

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

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

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

Ответ 4

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

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

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