Git иногда может быть крипти c, а документация там даже более того. Моя команда и я столкнулись с очень специфической ситуацией. Для справки, у нас есть готовый к производству основной филиал и развивающийся филиал. Наша стратегия ветвления заключается в следующем:
- ветвь от мастера для создания ветки объекта
- функция слияния с разработкой для интеграции и функционального тестирования
- отправка запроса на слияние мастеру, когда функция сделана
Один из случайно слитых разработчиков превратился в свою функцию перед тем, как объединить ее с мастером, так что в нее также вошла куча неосвещенного кода. Я отменил это слияние с мастером, затем разработчик исправил свою ветку, чтобы удалить весь незапятнанный код. Однако, при попытке снова объединить его ветку с мастером, возникла ошибка. Похоже, это потому, что у master уже была история ветви функций, поэтому он больше не принял ее.
Как правильно справиться с этой ситуацией.
PS - Попытка обернуть мою голову вокруг разницы между слиянием и перебазированием. Я понимаю, что слияние влечет за собой изменения кода и оставляет все остальное в такте, создавая новую историю для коммита. Однако, как работает rebase? Насколько я понимаю, он устанавливает одно ветвь в то же состояние, что и другое. Это правильно?