Построение гит процесса с ветками
От: merge  
Дата: 26.01.22 13:32
Оценка:
Привет

Работаем по такой схеме.
мастер — прод
qa — тестовый стенд

в ветке фичаА разработчик меняет много кода в течение дней 3 и меняет файл "фф" и сливает в ветку qa
в ветке ФичаБ другой разработчик меняет много кода и меняет файл "фф", но пока сливать в qa не может, т.к. фича не готова и просто берет изменения из qa которые в себе
уже содержат ветку ФичаА и тут конфликт.

Вопрос, как такого избегать?
Re: Построение гит процесса с ветками
От: Mihas  
Дата: 26.01.22 13:43
Оценка:
Здравствуйте, merge, Вы писали:

M>Привет


M>Работаем по такой схеме.

M>мастер — прод
M>qa — тестовый стенд
заведите еще одну ветку между qa и master, куда будете вливать только проверенные фичи

И примерьтесь к gitflow
Re: Построение гит процесса с ветками
От: B-52 Россия  
Дата: 26.01.22 13:45
Оценка:
Здравствуйте, merge, Вы писали:

M>Вопрос, как такого избегать?


Почитать первое попавшееся руководство по Гиту (с картинками — опционально). Можно погуглить по словам: "git branch model"
Re: Построение гит процесса с ветками
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 26.01.22 17:50
Оценка: +3
Здравствуйте, merge, Вы писали:

M>в ветке фичаА разработчик меняет много кода в течение дней 3 и меняет файл "фф" и сливает в ветку qa

M>в ветке ФичаБ другой разработчик меняет много кода и меняет файл "фф", но пока сливать в qa не может, т.к. фича не готова и просто берет изменения из qa которые в себе
M>уже содержат ветку ФичаА и тут конфликт.

Ну и что?

M>Вопрос, как такого избегать?


Не надо пытаться избегать. Конфликты неизбежны. Один файл или нет — неважно, но на одном файле на близких строках конфликты видны.
Надо по факту появления конфликта — лечить его. Как именно — определять по месту.
В общем случае для определения конфликтов есть компиляция и тесты.
The God is real, unless declared integer.
Re: Построение гит процесса с ветками
От: vmpire Россия  
Дата: 26.01.22 18:03
Оценка: 1 (1) +3
Здравствуйте, merge, Вы писали:

M>мастер — прод

M>qa — тестовый стенд

M>в ветке фичаА разработчик меняет много кода в течение дней 3 и меняет файл "фф" и сливает в ветку qa

M>в ветке ФичаБ другой разработчик меняет много кода и меняет файл "фф", но пока сливать в qa не может, т.к. фича не готова и просто берет изменения из qa которые в себе
M>уже содержат ветку ФичаА и тут конфликт.

M>Вопрос, как такого избегать?

Чего имено избежать? Конфликта? Так если в итоге редактирование файла нужно для обеих фич, то конфликт будет всё равно.
Как раз и хорошо, что конфликт будет устранён ещё в процессе реализации ФичаБ, а не позже, когда код ещё больше разойдётся.

Правильная организация кода позволяет уменьшать количество таких конфликтов. "Правильность" тут для каждого проекта своя, хотя есть и общие вещи, которые описаны в куче литературы (всякие SRP, LSP, low coupling/high cohesion и всё вот это вот).

Но конфликты всё равно могут быть, это неизбежно. Скажем, для фичаА нужно добавить к какой-то функции Параметр1, а для ФичаБ в ту же функцию нужно доавить Параметр2.
Такой конфликт будет неизбежен и может быть решён только вручную.
Re: Построение гит процесса с ветками
От: rosencrantz США  
Дата: 26.01.22 23:08
Оценка: 1 (1)
Здравствуйте, merge, Вы писали:

M>в ветке фичаА разработчик меняет много кода в течение дней 3 и меняет файл "фф" и сливает в ветку qa

M>в ветке ФичаБ другой разработчик меняет много кода и меняет файл "фф", но пока сливать в qa не может, т.к. фича не готова и просто берет изменения из qa которые в себе
M>уже содержат ветку ФичаА и тут конфликт.

M>Вопрос, как такого избегать?


Если я правильно понял что вы пишете, избегать тут получится только на уровне планирования — просто не работайте над задачами так, что несколько девелоперов лезут в один код, разнесите эту работу по времени. В том, что вы описали, никакой проблемы нет. Разработчик ФичаБ вытянул к себе правки из qa, увидел конфликт, починил его у себя в ветке, продолжает работу.

В ответах выше мне кажется ваш вопрос непраивльно поняли. При параллельной работе над одним кодом конфликты в любом случае будут, мёржить руками в любом случае придётся — хоть там gitflow, хоть что.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.