как объединить выпущенное исправление для разработки с конфликтами в запросе на вытягивание?

Мы используем следующие ветки рабочего процесса:

  • master
  • develop
  • hotfix ветвь на исправление (ответвление от тега release)

Когда ветвь hotfix выпускается в рабочую среду, она снова объединяется с develop и master с помощью запросов на вытягивание BitBucket.

Теперь мне нужно объединить ветку исправления с develop и master. Я создаю запрос на вытягивание BitBucket для develop, но его блокируют конфликты слияния. Проще говоря, текущая разработка изменила одни и те же файлы с момента создания тега выпуска.

Каков правильный способ решить эту проблему?

Я думаю:

  • создание новой ветки из develop
  • выбор вишни из ветки исправлений в новую ветку
  • создать запрос на слияние, чтобы объединить новую ветку для разработки

но это похоже на много ручной работы (теоретически - на самом деле у меня может быть 5 коммитов в ветке исправлений), и мне бы хотелось иметь какой-нибудь простой способ сделать это, совместимый с git-flow.


person ladar    schedule 13.05.2020    source источник
comment
Что значит слился с? Вы имеете в виду ответвление от?   -  person Inigo    schedule 13.05.2020
comment
Да, это опечатка, исправлено, спс   -  person ladar    schedule 13.05.2020
comment
Хорошо, я обновил ваш вопрос, основываясь на *что, по моему мнению, вы имеете в виду. Я уточнил, убрал лишнее и исправил формулировку. В будущем, пожалуйста, постарайтесь четко описать свою ситуацию. так как это ваша ситуация. Вы не получаете много взглядов, потому что похоже, что вы не хотели прикладывать много усилий, но чтобы ответить вам, другие должны. В любом случае, пожалуйста, подтвердите, и я обновлю свой ответ, учитывая все, что говорится в вопросе на тот момент.   -  person Inigo    schedule 13.05.2020
comment
Извините, но вы сильно изменили вопрос. Не было упоминания о ветке релиза, ветвь релиза давно ушла во время исправления, поскольку она удаляется после ее слияния для разработки и освоения. Согласно потоку git...   -  person ladar    schedule 14.05.2020
comment
на самом деле вы ДЕЙСТВИТЕЛЬНО упомянули ветку выпуска. Вы НЕ упомянули, что отказываетесь от него и что вы переключаете рабочие процессы. Я сделал все возможное, потому что то, что вы написали, было трудно понять. Вы можете либо сейчас отредактировать мои изменения, чтобы они были правильными, ИЛИ вы можете отменить мои изменения и начать заново. Но если вы хотите помочь вам нужно описать все четко.   -  person Inigo    schedule 14.05.2020


Ответы (1)


Master должен всегда всегда быть release + изменения для следующего выпуска. Таким образом, если исправление не является одноразовым (т. е. экстренным взломом, который необходимо правильно переделать для следующего выпуска), первое, что необходимо сделать, — это объединить изменения в release или применить к master. Если это приводит к конфликту, эти конфликты должны быть разрешены должным образом. Под правильно я подразумеваю логически правильно, и код работает как надо, и все тесты проходят. Нет волшебного ИИ. (пока) это может сделать это для вас - хотя существуют разные алгоритмы слияния, которые могут сделать это проще/сложнее, но это очень продвинутое использование git.

Как только исправления будут внесены в master, следующим шагом будет повторение процесса, на этот раз с master по develop.

Любой другой поток изменений подрывает весь смысл и назначение ветвей release, master и develop.

person Inigo    schedule 13.05.2020
comment
@ладар . Я потратил время, пытаясь понять ваш вопрос. Несмотря на то, что мое предположение было немного неверным (вы ДЕЙСТВИТЕЛЬНО упомянули релизную ветку, а теперь утверждаете, что этого не сделали. см. историю редактирования), суть моего ответа остается в силе: master должен иметь выпущенный код (если только он не одноразовый, но вы сказать, что это не так). Я собирался обновить свой ответ, указав лучший способ сделать это, как только получу разъяснения по вашему вопросу. Но вы проголосовали за это. Если вы все еще не согласны с моей точкой зрения, дайте мне знать, чтобы я не тратил на это больше времени, и я просто удалю свой ответ. - person Inigo; 14.05.2020