Вы сами процитировали причину:
Нельзя начать пересборку ветки (cannot rebase), пока есть незакоммиченные изменения в рабочем каталоге (You have unstaged changes).
Гит будет пересоздавать заново коммиты, а для этого нужен свободный рабочий каталог, в который распаковываются промежуточные состояния проекта.
Поэтому гит предлагает закоммитить или спрятать несохраненное (Please commit or stash them)
Команда git stash по факту тоже создает коммит, но он не привязан ни к какой ветке и рабочий каталог становится чистым. Затем вы делаете свои нехорошие дела и восстанавливаете stash обратно в рабочий каталог.