Использование Git правильно в небольшой команде

14

Какой самый простой способ правильно использовать git в небольшой команде из 5 разработчиков, когда на одном сервере запущено живое приложение?

ONOZ
источник
5
Я бы поставил под сомнение использование git в этом случае. Нет смысла использовать децентрализованное управление источниками, когда все люди в одной комнате с одним выделенным сервером. И есть еще накладные расходы на перетягивание коммитов.
Эйфорическая
10
@Euphoric зависит от вашего инструментария и рабочего процесса.
3
@ONOZ, пожалуйста, опишите ваш текущий способ работы более подробно.
22
@Euphoric - Что за невероятно узкое отношение. Для простоты ветвления и слияния в одиночку gitили для hgбольшинства централизованных VCS. Я могу понять, что люди раздражаются из-за того, что люди постоянно размышляют о том, насколько хороши DVCS, но зарывают голову в песок и отказываются признать, что с DVCS можно разрабатывать другие и, возможно, более эффективные рабочие процессы, чем без таковых.
Марк Бут
8
@Euphoric, использование Git не означает, что ваш источник контроля «децентрализован». Я работаю в небольшой команде, и мы используем Git, и у нас все еще есть центральное хранилище. Это то, к чему ты подталкиваешь. Использование DVCS обычно не означает, что каждый человек тянет от любого другого человека без центральной точки.
Kyralessa

Ответы:

11

Я предлагаю вам создать какую-то ветку:

  • производство
  • мастер
  • местный

Производственный филиал является "живым" филиалом. Это приложение используется сейчас.

Когда требуется обновление, разработчик может перенести основную ветвь в локальную ветвь. Чем, можете начать кодировать. В конце просто потяните и протолкните от локальной ветки разработчика к мастеру. Руководитель проекта может заглянуть в мастер ветку. Проверь это. И когда все будет готово, можете объединить производство с мастером. И теперь у вас будет новое программное обеспечение.

sensorario
источник
Если вы находитесь в ситуации с консалтингом или предприятием, вы также можете иметь филиал для UAT.
Джон Макинтайр
Согласитесь, я использую этот рабочий процесс.
Чеунг
Не могли бы вы пояснить, почему разница между локальной и основной ветвью? Я понимаю, почему вы хотели бы иметь рабочую рабочую версию, но когда вы вытягиваете / толкаете изменения, она автоматически сливается даже без локальной ветки, верно?
Люк
1
Поскольку локальная ветвь может быть названа как XXX-feature-name, таким образом, у вас есть основная ветвь как объединение всех ветвей функций, которые вы хотите в производстве. Да: потому что некоторые функции могут быть не включены.
sensorario
7

Начните с простого и создайте более сложный рабочий процесс по мере необходимости.

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

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

В вашем git-репозитории создайте productionветку и testветку.

Разработчики должны работать в своих локальных или удаленных ветвях функций, пока они не будут завершены и объединены master. Отсюда их можно объединить в testветку для развертывания в тестовой среде, а после прохождения тестов их можно объединить в productionветку.

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

Марк Бут
источник
Интересное мнение, я хотел бы рассмотреть в GIT ветвления модели , чтобы быть дело выключатель для мерзавца, с другой стороны , это может быть не столь очевидным , не GIT пользователей.
wirrbel
@wirrbel Там нет таких вещей , как в мерзавце ветвления модели, вы можете реализовать любое разветвление модели вы желаете , используя gitв соответствии рабочего процесс. Тот, который я предлагаю здесь, прост и, вероятно, будет лучше для неопытных gitпользователей, чем успешная модель ветвления Git, но AsGbm, вероятно, будет лучше для более опытных gitпользователей, но не очень подходит для некоторых команд (людей, желающих поддерживать несколько выпусков). ветки например). Как я уже сказал, проблема с AsGbm заключается в том, что он может выглядеть слишком сложным.
Марк Бут
Я понимаю вашу точку зрения. Просто для себя я начал с AsGbm (точнее адаптировал его под свои нужды). Это было прекрасно, так как я видел, как можно использовать git иначе, чем svn
wirrbel
7

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

Уайетт Барнетт
источник
Я также использовал это для создания моделей ветвления в последние несколько лет. Это фантастическая модель.
Джон Макинтайр
Большие пальцы за ссылку
Рахул Гаутам
0

У вас должен быть один главный репозиторий на сервере интеграции, и каждый разработчик должен его клонировать. После этого просто потяните и толкните. Разрабатывайте новые большие возможности в отдельной ветке. Здесь нет ракетостроения. На живом сервере - вы также должны клонировать главный репозиторий. И это хорошая практика, чтобы иметь такую ​​ветку как "live".

Николай Фоминых
источник
2
git archive - это еще одна опция для развертывания на живом сервере, если вы не хотите напрямую редактировать материал на живом сервере
jk.