n1ro°
RU

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

Git push rejected non-fast-forward: как исправить без потери чужих коммитов

Non-fast-forward означает, что удалённая ветка содержит коммиты, которых нет в вашей отправляемой истории. Git блокирует

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

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

Обычное исправление — сначала получить удалённые изменения (`git fetch` + merge/rebase), разрешить конфликты и повторить push. `--force` используйте только когда осознанно переписываете удалённую историю; безопаснее `--force-with-lease`.

Что делать

  1. Обновите ссылки: Запустите `git fetch origin` и сравните `git log --oneline --left-right HEAD..origin/<branch>`.
  2. Интегрируйте изменения: Выполните `git rebase origin/<branch>` либо merge — в соответствии с правилами репозитория.
  3. Разрешите конфликты: Исправьте файлы, добавьте их через `git add` и продолжите выбранную операцию.
  4. Отправьте снова: Повторите `git push origin <branch>`.
  5. Если история переписана намеренно: Проверьте удалённую ветку ещё раз и применяйте `git push --force-with-lease`, а не безусловный `--force`.

Важно

Не форсируйте защищённую или общую ветку без понимания последствий.

Раздел 3

Перед force-with-lease сделайте свежий `git fetch`.

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

Не форсируйте защищённую или общую ветку без понимания последствий.

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

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