Git отраслевых лучших практик - мастер, продакшн, постановка? - PullRequest
0 голосов
/ 14 июля 2020

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

somefeature => qa => staging => production ==> deploy

или даже без ветки qa:

somefeature => staging (действует как qa) = > production ==> deploy

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

Ответы [ 2 ]

1 голос
/ 14 июля 2020

Существует множество распространенных подходов к ветвлению, и какой из них вы используете, зависит от ваших потребностей.

Если вы используете свой собственный исходный код, вам может подойти одна основная ветвь (например, master). В такой модели вы создаете PR и получаете все необходимые согласования. Затем вы развертываете вне своей системы ветвления с помощью отдельного инструмента развертывания, такого как бот, и объединяетесь с основной веткой, когда ваш код стабилен. GitHub использует эту систему.

Вы также можете использовать sh многоуровневую модель ветвления, в которой PR объединяется в последовательность ветвей, сначала ветвь разработки, затем ветвь QA, промежуточную ветвь и производственный филиал. Последний может называться, а может и не называться master.

Если вы работаете над проектом, основанным на выпуске, у вас может быть одна ветвь разработки, в которую сливается большая часть кода, и одна или несколько ветвей выпуска, в которых исправляются при необходимости соберите вишню. Это модель, которую используют многие проекты с открытым исходным кодом, например Git LFS. Git использует аналогичную стратегию, но с дополнительными ветвями, где изменения «готовятся» до тех пор, пока они не будут считаться стабильными.

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

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

Но в целом, трудно дать универсальную рекомендацию

0 голосов
/ 14 июля 2020

Если вы не знакомы с потоком git, это очень разумная стратегия ветвления:

https://nvie.com/posts/a-successful-git-branching-model/

Что касается основной ветки, оставьте в виду, что «master» - это просто имя по умолчанию, присвоенное первой ветви репо git. Ни больше, ни меньше.

...