n1ro°
RU

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

Git push rejected: non-fast-forward — как сохранить удалённые и локальные изменения

Такой сбой лучше диагностировать воспроизводимо: сначала зафиксировать симптом, затем менять по одному условию и сравнив

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

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

Сделайте `git fetch`, изучите удалённые коммиты и интегрируйте их merge или rebase, затем повторите push. Не используйте обычный `--force`, если не уверены, что можно переписать историю.

Проверка по порядку

  • Проверьте текущую ветку и выполните `git fetch origin`, не меняя рабочее дерево.
  • Сравните локальную и удалённую историю через `git log --oneline --graph --decorate --all`.
  • Интегрируйте `origin/<branch>` через merge или осознанный rebase согласно политике проекта.

Исправление

  1. Разрешите конфликты и выполните тесты проекта перед новой отправкой.
  2. Повторите `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. Перед действием сверьте актуальные условия на официальном сайте сервиса или производителя.