Компьютеры · Инструкция
Git push rejected: non-fast-forward — как сохранить удалённые и локальные изменения
Такой сбой лучше диагностировать воспроизводимо: сначала зафиксировать симптом, затем менять по одному условию и сравнив
Короткий ответ
Сделайте `git fetch`, изучите удалённые коммиты и интегрируйте их merge или rebase, затем повторите push. Не используйте обычный `--force`, если не уверены, что можно переписать историю.
Проверка по порядку
- Проверьте текущую ветку и выполните `git fetch origin`, не меняя рабочее дерево.
- Сравните локальную и удалённую историю через `git log --oneline --graph --decorate --all`.
- Интегрируйте `origin/<branch>` через merge или осознанный rebase согласно политике проекта.
Исправление
- Разрешите конфликты и выполните тесты проекта перед новой отправкой.
- Повторите `git push`; если нужно переписать собственную ветку, предпочитайте `--force-with-lease` вместо слепого `--force`.
Перед завершением
- Выполнен шаг 1: Проверьте текущую ветку и выполните `git fetch origin`, не меняя рабочее дерево.
- Выполнен контрольный шаг: Интегрируйте `origin/<branch>` через merge или осознанный rebase согласно политике проекта.
- Повторно проверен исходный симптом после шага 5: Повторите `git push`; если нужно переписать собственную ветку, предпочитайте `--force-with-lease` вместо слепого `--force`.
Важно
При признаках аппаратного повреждения, перегрева, запаха или нестабильного питания остановите программные эксперименты и переходите к сервисной диагностике.
Что учитывать
При признаках аппаратного повреждения, перегрева, запаха или нестабильного питания остановите программные эксперименты и переходите к сервисной диагностике.
Источники и проверка
Инструкция составлена редакцией N1RO на 2026-09-17. Перед действием сверьте актуальные условия на официальном сайте сервиса или производителя.