Поддерживайте несколько ветвей git при работе с одними и теми же файлами

#git #gitlab #git-branch #branching-and-merging

# #git #gitlab #git-branch #ветвление и слияние

Вопрос:

У меня есть требование, когда мне нужно отправить две функции X и Y . Обе эти функции касаются одинаковых файлов. Проблема в том, что клиент может попросить удалить функцию в зависимости от сроков и качества. Теперь я подумал о двух подходах:

  1. Создайте единую ветку, объедините изменения для функций X и Y . За: легко объединять и поддерживать, Против: сложно удалить код одной из запрошенных функций.
  2. Создайте отдельные ветви и в конце объедините для разработки. Сначала объедините 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 будет происходить параллельно.