2012-05-21 2 views
1

Имея веб-проект на веб-сервере, который разделяют некоторые разработчики, мне приходится настраивать Git repo для этого проекта.
Но у меня все еще есть сомнения относительно того, как его организовать.Git repo - на веб-сервере

Давайте предположим, что у меня есть свои веб-проекты в /var/www/

Некоторые вопросы, идеи, которые я хотел бы получить комментарии:

это лучше init в репозитории Git в той же папке, публикации, или создать /var/repo/, копировать содержимое внутри и init РЕПО в этих копиях проекта?

В первом случае я могу разветвить проект как superuser и позволить людям работать на этой ветке ... затем решить объединить ветки после проверки? Но в этом случае я не думаю, что люди могут легко протестировать свою работу на веб-сервере ... им нужно локальное env. настроенный для тестирования.

Если я создаю /var/repo/domain.com, было бы неплохо создать Vhosts, например http://git.domain.com, чтобы разработчики могли проверить свою работу.

Если у меня есть /var/repo/project.com и хотел бы опубликовать выполненную работу (например, скопировать файлы на /var/www/project.com), как мне выполнить это действие копии? С cp -R? Есть ли инструмент для выполнения этого обновления, когда это необходимо?

+0

Вы хотите что-то вроде [redmine] (http://www.redmine.org/)? – Reactormonk

+0

Думаю, вам нужно будет работать, если вы делитесь веб-проектом (выпиской из git) или самим git-репо. –

+0

Если вы хотите, чтобы разработчик нажал на репо на вашем сервере, тогда этот репо должен быть «голым». –

ответ

0

Прежде всего, вы действительно не должны делать свой веб-проект самим хранилищем. Сначала вы должны настроить репозиторий для доступа всех. У вас может быть мастер и подразделение разработки, и каждый может также иметь собственные филиалы для особых частей веб-приложения. Лучшее решение - иметь ваш репозиторий на другом сервере, чем ваша живая система. Если вы не хотите тестировать вещи локально, вы должны настроить сервер разработки/промежуточного уровня, чтобы люди могли там проверять. Лучшей процедурой является использование сценария развертывания для этого, например. Capistrano.

Ваша процедура должна быть такой: Сервер A: Хранилище с мастером и промежуточной веткой + другие ветви, если необходимо для разработки. Сервер B: Live System (вы можете использовать capistrano для развертывания главного ветви здесь - если вы хотите быть единственным, кто может развернуть систему в реальном времени, вам не следует добавлять на сервер никакой ssh-ключ, кроме вашего или использовать другой метод проверки подлинности) Сервер C: среда тестирования (также может быть на том же сервере, что и ваши репозитории, но я лично предпочитаю это также разделять)

Теперь используйте capistrano для соединения живой системы с ведущей ветвью и системой тестирования с веткой dev/staging. Конечно, люди должны иметь доступ к промежуточному серверу.

Они могут вносить свои изменения в репозиторий, используя ветвь dev/staging. После этого они могут использовать «развертывание командной строки» для развертывания ветви dev/staging на сервере dev для проверки их работы. Если все работает, вы можете просто вытащить Dev-Branche и проверить мастер. Используйте «git merge staging», чтобы объединить ветвь dev/staging в мастер и вставить ее в главный репозиторий. Впоследствии «развертывание производства шапки» будет устанавливать все на вашей живой системе.

Это довольно просто настроить - всего несколько настроек для всех, и у вас будет отличный рабочий процесс.

Надеюсь, это помогло.

Смежные вопросы