#git #gitlab #git-branch #branching-and-merging
# #git #gitlab #git-branch #ветвление и слияние
Вопрос:
У меня есть требование, когда мне нужно отправить две функции X
и Y
. Обе эти функции касаются одинаковых файлов. Проблема в том, что клиент может попросить удалить функцию в зависимости от сроков и качества. Теперь я подумал о двух подходах:
- Создайте единую ветку, объедините изменения для функций
X
иY
. За: легко объединять и поддерживать, Против: сложно удалить код одной из запрошенных функций. - Создайте отдельные ветви и в конце объедините для разработки. Сначала объедините
X
, а затем разрешите огромный список конфликтов при объединенииY
для разработки. За: легко удалить код, против: сложно объединить.
Подход 1
featureTaskOfY
/
/
D(Develop)<----XY<---- featureTaskOfX
Подход 2
D(Develop)<----X<---- featureTaskOfX
----------Y<-------featureTaskOfY
Какие могут быть другие способы решить эту проблему более простыми средствами. Который уравновешивает оба.
Комментарии:
1. На каком языке вы разрабатываете?
2. разработка проекта для Android
3. Я чувствую, что это скорее проблема дизайна, а не проблема git. Вы могли бы определить абстрактный интерфейс для целевой функциональности (A B). Затем реализуйте функциональные возможности либо в отдельном, либо в одном файле, но используйте требуемые функциональные возможности по мере необходимости.
Ответ №1:
Вы можете иметь обе функции в одной ветке, зафиксировав все файлы для функции X в одном коммите, а затем все Y в другом коммите. Таким образом, если бы вам пришлось удалить какую-либо функцию, вы могли бы просто отменить фиксацию, соответствующую этой функции.
И вы можете работать с одной веткой, что избавляет от конфликтов слияния.
Комментарии:
1. Разработка функций X и Y будет происходить параллельно.