Эффективный способ объединения ветви функции в более чем одну целевую ветвь

#git #merge #conflict

#мерзавец #поглощать #конфликт

Вопрос:

Я хочу применить одну и ту же функцию (ветвь) к двум основным ветвям, которые имеют некоторые различия.

Ситуация:

  • Ветвь A = мастер (это моя живая ветвь)
  • Ветвь B = тестирование (это постоянная ветвь, основанная на A в какой-то момент времени с некоторыми дополнительными фиксациями/различиями для соблюдения моей тестовой среды)
  • Ветвь C = функция (всегда основана на ГЛАВЕ A)

После завершения разработки функций на C я хочу, прежде всего, объединить C с B для тестирования. При этом может случиться так, что мне понадобится какое-то разрешение конфликта, чтобы C можно было объединить в B (что нормально из-за желаемого различия между A и B). После завершения тестирования на B я, наконец, хочу объединить C в A. Проблема здесь в том, что разрешение конфликта, которое я сделал, чтобы объединить C в B, теперь является частью C и также будет объединено в A (чего я не хочу).

Мое текущее решение:

  • Создайте ветвь D на основе ветви C
  • Перебазировать D в ГЛАВУ отдела B
  • Разрешите конфликты на D и оставьте C нетронутым.
  • Объединить D с B для тестирования
  • Позже объедините C в A, чтобы начать жить.

Есть ли для этого более эффективный / прямой подход?

Комментарии:

1. «чего я не хочу» — почему?

2. Если ваше слияние C в B изменяет C, это звучит так, как будто вы объединяетесь неправильно (то есть вы объединяете B в C).

3. Я думаю, что нашел свою проблему благодаря вашим комментариям: на самом деле мое предположение «разрешение конфликта, которое я сделал, чтобы объединить C в B, теперь является частью C», происходит только тогда, когда мы использовали запросы на извлечение и функцию разрешения конфликтов Gitlab, которая, похоже, применяет разрешение в качестве фиксации к исходной ветви, чтобы сделать PR объединяемым.