Правильное использование ветвления git определенно может помочь в этом. Ключевым моментом является то, что каждая отдельная ветка имеет стабильную основу конфигурации: ничто внешнее по отношению к ветке не должно изменять состояние конфигурации внутри ветки, чтобы позже, когда придет время экспортировать конфигурацию в ветке и объединить ее в продакшн, остались только актуальные изменения. на ветку записываются.
Один из способов сделать это — создать основную ветку с именем производство
, и HEAD этой ветки всегда отслеживает текущее состояние вашей кодовой базы. Вы все соглашаетесь не совершать и не объединять вещи в производство
если только вы не готовитесь выпустить эти вещи вживую.
Когда Арджун хочет поработать над новой функцией, они создают новую ветку производство
, и они называют это арджун-1
.
На следующий день Бет нужно исправить ошибку, поэтому она создает собственную новую ветку. производство
называется Бет-1
.
Между тем, контент-менеджер Сеси в пользовательском интерфейсе сайта создает веб-формы, а это значит, что она вносит живые изменения в конфигурацию, которые отличаются от состояния конфигурации производство
. В каком-то смысле она тоже является ответвлением производство
! На самом деле, давайте продолжим и создадим ceci-1
ответвление от производство
теперь, чтобы представить это, хотя мы, вероятно, еще ничего не будем коммитить.
Несколько дней спустя соответствующие ветки Арджуна и Бет были проверены и приняты, и руководство хочет развернуть новую версию своей работы на работающем сайте.
Первое, что нужно сделать, это проверить ceci-1
ветке, экспортируйте текущую конфигурацию и зафиксируйте обновленные файлы конфигурации в ceci-1
.
Теперь вы можете приступить к объединению в производство
: новая функция арджун-1
, исправление Бет-1
, а также оперативные обновления конфигурации ceci-1
. Могут возникнуть конфликты слияния, которые необходимо просмотреть, но вам не нужно беспокоиться о том, что вы случайно перезапишете чужую конфигурацию. Это связано с тем, что каждая отдельная ветвь имела согласованную основу для экспорта своих индивидуальных изменений конфигурации.
Допустим, вы не сделали ceci-1
ветвь. Вместо этого вы объединили арджун-1
и Бет-1
в производство
, затем экспортировал оперативную конфигурацию и зафиксировал оперативные обновления в производство
. Вы облажались! Вы изменили основу для изменений конфигурации живого сайта Ceci. Они были основаны на состоянии производства без ветвей Арджуна и Бет. При экспорте сейчас все внесенные изменения конфигурации будут перезаписаны.