PassFront
  1. PassFront
  2. База знаний
  3. Слияние, rebase и конфликты

Для чего нужен base commit в rebase?

Слияние, rebase и конфликты

Base commit при rebase — общий предок вашей ветки и ветки, на которую вы ребейзите. Коммиты после него переносятся на новую базу.

Как это работает

main:     A---B---C
               \
feature:        D---E

Base commit здесь B. После git rebase main коммиты D и E пересоздаются поверх C:

main:     A---B---C
                   \
feature:            D'---E'

Зачем он важен

  • определяет, какие коммиты будут перенесены — все после base;
  • в git rebase --onto базу можно задать явно: перенести только часть коммитов на другую ветку:
git rebase --onto main old-base feature
  • найти его можно командой git merge-base main feature.

Коротко для собеседования

Base commit — общий предок веток; rebase переносит все коммиты после него поверх новой базы, а --onto позволяет задать базу явно.

Подробнее: Pro Git — Перебазирование

Другие вопросы раздела