В нашем проекте есть следующие филиалы:
- Мастер
- предсерийный
- Производство
Мы используем такие ветки, как feature / myfeature-123, для разработки новой функции. Если они сделаны, мы объединяем их в мастера.
Через некоторое время, когда достаточно функций уже сделано и успешно объединено в master, мы развернем наш проект для подготовки к выпуску. Для этого нам нужно объединить последние изменения в ветку предпроизводства.
Примечание: за это время ничего не изменилось в ветке подготовки производства
И вот наша проблема:
Мы сталкиваемся со многими конфликтами слияний. Тогда я подумал, хорошо. Давайте исправим это вручную.
Я сделал следующее:
- Оформить заказ на подготовку производства
- (просто чтобы быть в безопасности) Вытащить последние изменения в этой ветке (не было)
- Создать новую ветку из текущей ветки, в которой я нахожусь. Имя: развертывание-апрель2019
- Перешел на эту новую ветку
git pull origin master
для получения текущего состояния из master
в эту ветвь.
Как указано выше, мы сталкиваемся с множеством конфликтов слияния. Поскольку мы ничего не меняли в ветке предпроизводства, я хотел принять все изменения, которые были сделаны в ветке master. Это должно исправить все конфликты.
Это сработало, НО в основной ветке мы удалили несколько файлов / строк, которые также были в подготовительной ветке. Я бы ожидал, что эти удаленные файлы / удаленные строки будут также применены к подготовительной ветке. Но это был не тот случай. Они остались в отделе подготовки производства. Есть идеи, что делать, чтобы решить эту проблему?
Я не самый большой эксперт в этом. У меня есть общее представление о Git, но я все еще боюсь сломать вещи, выполняя неправильные команды. Я думал, что rebase
может помочь здесь, но я не знаю.
Я очень благодарен за любую помощь, которую вы можете оказать.