Предполагая, что поэтапные и не поэтапные изменения не являются конфликтующими,
Вот как вы можете добиться этого:
git stash save --keep-index
git reset --hard
git stash pop
Первая команда [stash with --keep-index] будет сохранять только неустановленные файлы,Второй [reset --hard] избавит от всех существующих изменений (которые теперь включают только промежуточные файлы).Третий [stash pop] удаляет прежние неотмеченные файлы.
Альтернативный подход может быть следующим: зафиксировать промежуточные файлы, спрятать оставшиеся изменения, удалить верхний коммит, вытолкнуть спрятанные изменения.Как ниже:
git commit -m "temp commit"
git stash
git reset --hard HEAD~1
git stash pop