настройка сервера разработки git group - PullRequest
1 голос
/ 14 октября 2010

Я хочу развернуть git для своей организации. Я хочу, чтобы пользователи не имели доступа к серверу и делали коммиты только в хранилище. Однако я хочу, чтобы хранилище представляло собой настоящую файловую систему, которую я могу использовать с виртуальным хостом Apache. Я сделал следующее:

cd /home/vhosts
git init --shared {projectname}
git config receive.denyCurrentBranch ignore

Затем я хочу запускать git reset --hard после каждого возврата обратно в главный репозиторий.

Это хорошая идея? Должен ли я иметь второй репозиторий, который делает git pull вместо git reset --hard ... который тяжелее? Могу ли я установить это как hook ??

Спасибо.

Ответы [ 3 ]

3 голосов
/ 15 октября 2010

У меня есть настройки, которые вы описываете с несколькими модификациями. У Джо Маллера есть отличная статья, которую я использовал в качестве основы для своей конфигурации. Рабочий процесс Git, ориентированный на веб-сайты

1 голос
/ 14 октября 2010

Как правило, способ установить это состоит в том, чтобы иметь «голое» хранилище, которое является мастером верхнего уровня, из которого все выталкивают и вытаскивают. Веб-сервер, на котором работает Apache, имеет свой отдельный репозиторий (если вам не хватает аппаратного обеспечения, они могут быть на одной машине). Вы бы установили хук post-commit в главный репозиторий, который запускает «git pull» для Apache в /home/vhosts. (Этот хук самый простой на одной машине, но вы можете сделать это на разных машинах, если настроите его таким образом.)

Чтобы создать пустой репозиторий:

mkdir -p /home/git/{projectname}.git
cd /home/git/{projectname}.git
git init --shared --bare

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

0 голосов
/ 15 октября 2010

Я не уверен, какое отношение имеет к этому Apache.

Просто установите репо, чистое, как говорит Грег, и сделайте это своим основным репо. Люди тогда отстраняются от этого, и когда они готовы, они настаивают на этом. Возможно, вы хотите запретить слияния без ускоренной пересылки в главном репо, чтобы люди всегда извлекали последний код, сливались с ним и затем нажимали.

Лучший способ предоставить людям доступ к репо - использовать демон git и протокол git://.

Если вам нужен веб-интерфейс, используйте gitweb, но это просто удобство.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...