-1

Общий вопрос вокруг Git.

Мы работаем в двухнедельных спринтах и у нас есть 4 ветки:

разработать> Release-B-Name(тест)> Release-A-Name(бета)> мастер

Каждый спринт мы создаем новую ветку с некоторым именем (AZ).

Каждый квартал мы объединяем RC в master и помечаем этот код как готовый к работе.

Затем на производственном ящике мы выбираем и объединяем последнюю версию master (запустив git pull origin master), чтобы каждый квартал производство работало с самой последней и самой лучшей из master. Это был исторический подход.

Вопрос: Должен ли я запускать / проверять основную ветку или помеченную версию master в рабочей коробке?

Я знаю, что работа с помеченной версией будет делать это в отсоединенном состоянии, но я не вижу проблемы с этим, за исключением случаев, когда нужно сделать исправление?

1 ответ1

1

Отказ от ответственности: лично я довольно скептически отношусь к использованию Git в качестве инструмента развертывания. Реальный инструмент сборки / развертывания будет предлагать много вещей, которые Git не делает: правила создания версий, компиляцию / предварительную обработку, управление правами доступа к файлам и т.д. Если вы "развертываете" с помощью Git, эти шаги обычно должны выполняться вручную, что отстой. Однако вы, похоже, в принципе удовлетворены процессом развертывания, поэтому я перестану с этим спорить.

Чтобы ответить на ваши вопросы:

Вопрос: Должен ли я запускать / проверять основную ветку или помеченную версию master на производственной коробке?

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

  • Если кто-то должен стремиться освоить время между пометкой и развертыванием, вы все равно получите правильную версию.
  • Если кто-то позже запустит git pull на производстве, с настройками по умолчанию и проверенным master , Git извлечет последнее состояние master (что бы это ни было). Если тег извлечен, ничего не изменится.

Я знаю, что работа с помеченной версией будет делать это в отсоединенном состоянии, но я не вижу проблемы с этим, за исключением случаев, когда нужно сделать исправление?

Я действительно надеюсь, что вы не намекаете на то, что вы собираетесь устанавливать (и, возможно, даже разрабатывать) исправления в процессе производства? Если да, то, пожалуйста, не надо :-).

В любом случае: да, состояние отсоединенного HEAD не должно быть проблемой. Я бы на самом деле видел в этом выгоду, так как он дает понять, что вы не должны совершать какие-либо действия на производстве. Если вы действительно, действительно чувствуете, что должны, вы всегда можете создать и оформить ветку позже, когда вам это нужно (но, пожалуйста, не надо).


Наконец, несколько советов:

Затем в рабочей коробке мы извлекаем и объединяем последнюю версию master (запустив git pull origin master)

Даже если вы настаиваете на использовании Git для развертывания, не стоит использовать git pull , потому что git pull автоматически выполнит слияние, если ранее была проверена неправильная ветвь (или если у вас даже есть локальные коммиты, которые вы надеетесь сделать «т). Объединение приведет к тому, что у вас будет (непроверенный) набор данных из разных веток. Скорее, я бы порекомендовал вам использовать:

git fetch
git checkout MY_VERSION_TAG

Таким образом, вы получите именно файлы из MY_VERSION_TAG . Кроме того, я настоятельно рекомендую вам проверять наличие локальных изменений с использованием git status перед развертыванием. Если таковые обнаружены, исследуйте их перед развертыванием.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .