Как / где вы храните репозитории git при работе с несколькими серверами?

Я новичок в git, но я пытаюсь настроить его во всех наших системах, чтобы все проекты управлялись git и gitosis.

Мой вопрос связан с расположением фактических репозиториев при рассмотрении серверов разработки / подготовки / производства.

Нужно ли мне...

A) Настройте git и gitosis на 1 сервере для размещения всех моих репозиториев git и опустите соответствующий репозиторий в каждое необходимое место (три сервера и несколько локальных компьютеров).

<Dev Server [git gitosis > myproject.git]> 
<Staging Server [git clone ...]> 
<Production Server [git clone ...]>

OR

Б) Настройте git и gitosis на всех серверах, чтобы репозитории git размещались на том же сервере, что и их соответствующий проект, фиксируйте на каждом сервере по мере того, как проект передается от локального к разработке к промежуточному к производственному. Таким образом, репозитории обновляются ровно настолько, насколько это было одобрено для этого сервера.

<Dev Server [git gitosis > myproject.git]>
<Staging Server [git gitosis > myproject.git {updated from Dev Server}]>
<Production Server [git gitosis > myproject.git {updated from Staging Server}]>

Пока я пишу это, кажется, что (A) будет лучшим вариантом, и что правильные выпуски для каждого сервера будут обрабатываться разными ветвями ... Не уверен, выключен я или нет.

Если оба неверны, сообщите мне о подходящем способе настройки git на нескольких серверах.

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


person Matt    schedule 04.07.2011    source источник


Ответы (2)


Я бы определенно выбрал первый вариант; иметь быстрый и легкий доступ ко всем версиям вашего кода повсюду - это хорошо.

person Amber    schedule 04.07.2011
comment
А некоторые соглашения о тегах или (удаленные) ветки в центральном месте могут помочь вам отслеживать, что работает (проверено) на каком хосте. Также: я думаю, вам не следует бояться делать что-то локально и только потом переносить эти изменения в центральное место; все-таки git распространяется, и это удобно. Тогда реальное состояние на этом индивидуальном рабочем месте может быть отражено удаленной веткой (или тегом), как я уже сказал. - person imz -- Ivan Zakharyaschev; 05.07.2011
comment
Это должен быть отдельный сервер? У меня есть 3 сервера разработки и 3 постановки в виде виртуальных машин на одном сервере и 3 отдельных VPS от Rackspace для производства. Я мог бы создать дополнительную виртуальную машину для размещения репозиториев git ... я должен это сделать? Также, как бы вы справились с этим, чтобы убедиться, что вы отслеживаете, что следует / не следует развертывать в dev / staging / production ... ex. поддерживать отдельные ветки для разработки, подготовки и производства? - person Matt; 05.07.2011

Я бы выбрал первый вариант и использовал бы Gitolite вместо Gitosis. Гитоз сейчас активно не развивается. Gitolite дает вам больше возможностей.

Надеюсь это поможет.

person Adam Dymitruk    schedule 05.07.2011
comment
Что ж, это глупо. Зачем кому-то предлагать гитоз вместо гитолита? - person Adam Dymitruk; 05.07.2011
comment
+1, чтобы поставить 0. Возможно, это скорее комментарий, чем ответ. Я собирался сказать то же самое в комментарии к OP, прежде чем увидел это здесь. Тем не менее, это полностью правда. Я очень хочу, чтобы в документации gitosis ЧТО-то говорилось о том, что он устарел. - person Dan Ray; 05.07.2011
comment
Это странно, потому что в руководстве в документации сообщества Ubuntu говорится об использовании gitosis: help.ubuntu.com/community/Git и это было для 10.04 ... неужели совсем недавно оно устарело? - person Matt; 05.07.2011
comment
Устаревшее может быть немного сильным словом. Больше не активно развивается, было бы точнее из того, что я слышал на канале IRC. - person Adam Dymitruk; 05.07.2011