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

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

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

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

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

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

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

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

4 ответов


Ситуация A

похоже, вы хотите настроить рабочий процесс integration manager. В этом случае человек A создает начальное хранилище, которое является священным хранилищем. Каждый человек, A, B и C, клонирует этот репозиторий для своей личной работы. Когда у человека B или C есть что-то, что они хотят, чтобы A включил в репозиторий для совместного использования, они фиксируют его в своем локальном репозитории и просят A вытащить из своего репозитория (a тянуть запрос); человека создает пульт ДУs для репозиториев человека B и человека C, а затем can git pull personB или git pull personB для слияния изменений. Человек а тогда git pushs объединенные изменения в священное хранилище.

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

  1. человек а делает священный репозиторий: см. "Создание удаленного репозитория" на этом страница из 37signals. Допустим, это в /local/git/project.git on 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 чтобы подтолкнуть вновь объединенные изменения к общему РЕПО и B и C can git pull за ними.

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


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

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

я рекомендую предоставить 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

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

как вы можете добавить ветку вашего друга к вашему ГИТ?

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


один из них предложил мне воспользоваться gitosis'А, который поднял новая задача: как вы можете настроить Gitosis на свой сервер, сначала настроив Python-setuptools, когда у вас нет доступа sudo?

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

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


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

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

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