Git Workflow advice - PullRequest
       29

Git Workflow advice

0 голосов
/ 14 ноября 2018

Прежде всего, я не очень разбираюсь в Git и ищу несколько советов, потому что сталкиваюсь со следующей проблемой: у моего отдела есть следующие филиалы и используются конвейеры непрерывной доставки в Git:

  1. DEV, у которого есть соответствующая ветвь (называемая master) в Git
  2. PROD с производственной веткой в ​​Git, поэтому, когда мы объединяем master в ветке Prod, все наши разработки переходят в среду Prod.

Как мы действуем: для каждой новой функции мы создаем новую ветвь функции на главном сервере и фиксируем изменения на главном устройстве, чтобы они были размещены в тестовой среде и проверяли, работают ли они. Таким образом, на master есть различные коммиты для функций, которые могут быть готовы к использованию в Prod, и другие функции, которые все еще находятся на стадии разработки / тестирования. Это становится еще сложнее, если больше людей работают над одними и теми же вещами, например, меняя одни и те же файлы.

Таким образом, у нас есть только DEV и PROD, и невозможно создать еще одну дополнительную среду.

И из-за этого мы сталкиваемся с некоторыми проблемами, когда нужно продвигать эти изменения в PROD, например, не продвигать все изменения или продвигать изменения, которые еще не готовы к PROD.

Так что мой вопрос в том, что, по вашему мнению, будет наилучшим сценарием практики для этой конкретной ситуации? Так что, если у вас есть некоторый опыт, любая помощь очень ценится.

Большое спасибо, что нашли время, чтобы прочитать мой вопрос!

1 Ответ

0 голосов
/ 14 ноября 2018

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

См. здесь для подробного описания этой модели.

Ваша проблема здесь в том, что вы должны объединиться назад, чтобы иметь возможность проводить тестирование.Это не представляется возможным.Вы можете добавить еще один слой, например ветку testing, в которую вы объединяетесь, чтобы проверить свои изменения, и объединять их с master, только если они работают должным образом.Но, как я уже сказал, лучшим подходом было бы протестировать ваши функциональные ветки, а не объединять ломаные вещи для разработки.

...