Задать вопрос
@hippocrates_ho_koios
врач-кибернетик

Что правильнее: git merge master VS git rebase?

Какой подход правильнее использовать при решении конфликтов слияния: мерджить master в feature или перебазирование feature?
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • ProductStar
    Python + Flask + Git: веб-разработка с нуля
    2 месяца
    Далее
  • Учебный центр IBS
    DEV-007 Введение в систему контроля версий Git
    1 неделя
    Далее
  • Stepik
    Git (система контроля версий)
    1 неделя
    Далее
Пригласить эксперта
Ответы на вопрос 4
@karminski
Senior React.JS Developer
Ребейз для более чистой структуры ветвления, мерж создаёт дополнительные мерж комнаты. Если работаете один или малым числом разработчиков можно ребейзить. Вообще тема холиварная, почти как винда вс линукс. Попробуйте оба подхода и определите сами для себя, что именно вам подходит.
Ответ написан
Комментировать
@Vitsliputsli
Правильнее merge.
Merge создаст новый коммит в котором объединит 2 ветки.
Rebase удалит все ваши коммиты из ветки, перенесет ветку в другое место и создаст новые коммиты с новым родителем.

Т.е. если чтото не так смержили при ребейзе выковыривать придется из удаленных. Плюсом ребейза считается более "красивая" картинка, по-факту это просто уничтожение истории, а сам факт уничтожения истории в системе контроля версий порождает вопрос, а зачем тогда вообще контроль версий?
Поэтому ребейз не применим, если вы не один пользуетесь веткой. А если один, то все на вашей совести. На практике, конечно не всегда все так катастрофично, поэтому есть предпочитающие ребейз. Специально ради таких вредителей основные ветки проекта делают защищенными от переписывания.
Есть редкие ситуации, когда ребейз предпочтительней, например вы мержите в ветку, но забыли сделать пулл, смысла этот смерженный коммит держать в параллельной ветке нет, лучше при таком мерже выбрать ребейз, т.к. такое переписывание истории будет только локальным.
Ответ написан
xez
@xez
TL Junior Roo
Лучше мердж.
С ребейсом будут проблемы, если ветку использует кто-то еще.
Ответ написан
Комментировать
sergey-kuznetsov
@sergey-kuznetsov Куратор тега Git
Автоматизатор
Вопрос поставлен некорректно — merge и rebase не используются для решения конфликтов — наоборот, именно при их выполнении конфликты и появляются.

Разница лишь в том, что при merge вы решаете конфликты один раз — при создании коммита слияния.
А при rebase Git воспроизводит историю коммитов заново, и вам, возможно, придётся разруливать конфликты на каждом из них.

Нет правильного или неправильного способа слияния. Используйте тот, что уместен в контексте.
Если ветка короткая и никто кроме вас с ней не работает, можно аккуратно пересобрать её через rebase — история будет выглядеть чище, будто вы только что ответвились от актуальной версии проекта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
Made In Dream Санкт-Петербург
от 100 000 до 220 000 ₽
от 250 000 до 320 000 ₽