Компьютеры · Инструкция
Git push rejected non-fast-forward: как исправить без потери чужих коммитов
Non-fast-forward означает, что удалённая ветка содержит коммиты, которых нет в вашей отправляемой истории. Git блокирует
Короткий ответ
Обычное исправление — сначала получить удалённые изменения (`git fetch` + merge/rebase), разрешить конфликты и повторить push. `--force` используйте только когда осознанно переписываете удалённую историю; безопаснее `--force-with-lease`.
Что делать
- Обновите ссылки: Запустите `git fetch origin` и сравните `git log --oneline --left-right HEAD..origin/<branch>`.
- Интегрируйте изменения: Выполните `git rebase origin/<branch>` либо merge — в соответствии с правилами репозитория.
- Разрешите конфликты: Исправьте файлы, добавьте их через `git add` и продолжите выбранную операцию.
- Отправьте снова: Повторите `git push origin <branch>`.
- Если история переписана намеренно: Проверьте удалённую ветку ещё раз и применяйте `git push --force-with-lease`, а не безусловный `--force`.
Важно
Не форсируйте защищённую или общую ветку без понимания последствий.
Раздел 3
Перед force-with-lease сделайте свежий `git fetch`.
Что учитывать
Не форсируйте защищённую или общую ветку без понимания последствий.
Источники и проверка
Инструкция составлена редакцией N1RO на 2026-09-17. Перед действием сверьте актуальные условия на официальном сайте сервиса или производителя.