Git LinuxWindowsmacOS

Git: cannot pull with rebase: You have unstaged changes

  • Обновлено
  • Чтение ≈ 1 минута

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

Нужно сохранить или спрятать локальные изменения перед pull --rebase. Используйте git stash или коммит.

В этой статье
  1. Что означает ошибка
  2. Причины и признаки
  3. Пошаговое решение
  4. Если проблема осталась

#Что означает ошибка

Сообщение
unstaged changes

Нужно сохранить или спрятать локальные изменения перед pull --rebase. Используйте git stash или коммит.

#Причины и признаки

Возможная причинаКак узнатьЧто делать
Несохранённые измененияgit status показывает локальные правки.Сохраните отдельным коммитом или stash.
Не добавленыЕсть незакоммиченные новые файлы.При stash выберите -u после проверки списка.
КонфликтRebase остановился на конфликте.Исправьте файл и git rebase --continue либо --abort.
АвтостэшНастроенный autostash не сработал.Сохраните правки вручную прежде pull.

#Пошаговое решение

  1. Сохраните список незакоммиченных файловВ терминале внутри репозитория выполните git status --short и git diff (для уже добавленных изменений git diff --cached). Убедитесь, что изменения ваши и их нельзя потерять. git pull --rebase не следует повторять до выбора способа сохранения.
  2. Вариант А: сделайте отдельный коммитЕсли изменения завершены и их нужно сохранить в истории, выполните git add ПУТЬ_К_ФАЙЛУ для проверенных файлов, затем git commit -m "Сохранить локальные изменения". Не используйте git add -A без просмотра статуса: можно случайно зафиксировать секреты.
  3. Вариант Б: временно отложите измененияЕсли работа не закончена, используйте git stash push -u -m "before-rebase" (ключ -u включает непроиндексированные файлы, но не игнорируемые). Убедитесь, что запись видна через git stash list, затем выполните git pull --rebase. После успешного обновления верните правки git stash apply, проверьте конфликтующие файлы и только потом удаляйте stash.
  4. Проверьте итоговое состояниеВыполните git status и git log -1 --oneline. При конфликте rebase сначала откройте конфликтующие файлы, исправьте вручную и используйте git rebase --continue; для безопасной отмены текущей операции — git rebase --abort. Не выполняйте git reset --hard ради устранения ошибки.

#Если проблема осталась

Если «Git: cannot pull with rebase: You have unstaged changes» повторяется, сохраните время, состояние подключения и точный текст ошибки. Не меняйте сразу несколько настроек — иначе станет трудно понять, какое действие повлияло на результат.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.