Продолжить rebase не стейджа все файла

Хотел вот так внести изменения:

  1. Сделать мёрдж
  2. Поресолвить конфликты, застейджить
  3. Наделать ещё пачку изменений
  4. Часть из них достейджить к мёрджу
  5. Продолжить мёрдж
  6. Оставшиеся изменения внести отдельным коммитом

Но на шаге 5 выяснилось, что мёрдж на самом деле не merge, а rebase (забыл чекбокс снять). Поэтому выдаётся ошибка

You must edit all merge conflicts and then
mark them as resolved using git add

Что надо предпринять, чтобы всё же получить два коммита - один из застейдженных файлов, а второй - из незастейдженных? При этом меня устраивает как merge, так и rebase.

Приходит в голову стешить незастейдженные файлы, продолжать rebase, потом применять стэш. Но вроде бы он не умеет стешить только незастейдженные?


Ответы (1 шт):

Автор решения: Exploding Kitten

Если я правильно вас понял, то в процессе rebase можно делать промежуточные коммиты, тогда весь процесс будет выглядеть:

  1. Сделать мёрдж
  2. Поресолвить конфликты, застейджить
  3. Создать коммит, который будет содержать только резолвы конфликтов (git commit -m "промежуточный коммит")
  4. Наделать ещё пачку изменений
  5. git rebase --continue

Тогда ветка будет выглядеть примерно так:

  • Коммит "Пачка изменений"
  • Коммит "Резолв конфликтов"
  • Коммиты из родительской ветки...
→ Ссылка