n1ro°
RU

Компьютеры · Инструкция

Git pull: divergent branches — как выбрать merge или rebase

Сообщение появляется, когда локальная и удалённая ветки имеют собственные коммиты и Git не должен молча решать, переписы

Редакция N1RO · Проверено

Короткий ответ

Если Git просит указать способ согласования расходящихся веток, выберите стратегию явно: `git pull --rebase`, `git pull --no-rebase` или только fast-forward через `git pull --ff-only`. Для постоянного поведения задайте `pull.rebase` или `pull.ff` в config.

Что делать

  1. Проверьте расхождение: Выполните `git status` и `git log --oneline --graph --decorate --all -20`, чтобы увидеть обе линии истории.
  2. Выберите merge: Если история общая и merge-коммит допустим, выполните `git pull --no-rebase`.
  3. Или выберите rebase: Для линейной истории локальных неопубликованных коммитов используйте `git pull --rebase`.
  4. Запретите неявный merge: Если pull должен работать только при fast-forward, используйте `git pull --ff-only`.
  5. Закрепите правило: Задайте `git config pull.rebase true|false` или `git config pull.ff only` на уровне репозитория; `--global` применяйте только если правило нужно везде.

Важно

Перед rebase убедитесь, что рабочее дерево сохранено или закоммичено.

Раздел 3

Не делайте rebase опубликованных коммитов без согласования с командой.

Что учитывать

Перед rebase убедитесь, что рабочее дерево сохранено или закоммичено.

Источники и проверка

Инструкция составлена редакцией N1RO на 2026-09-17. Перед действием сверьте актуальные условия на официальном сайте сервиса или производителя.