#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 объединяемым.