Пожалуй, самым простым подходом здесь было бы просто выполнить программный сброс, вернуться назад на 10 коммитов и затем повторить:
git reset --soft HEAD~10
git commit -m 'squash 10 commits into just one commit'
git push --force origin your_branch
Идея этого трюка с программным сбросом заключается в том, что мы перемещаем указатель HEAD назад на 10 коммитов. Это помещает все изменения из ваших 10 коммитов в стадию, оставляя рабочий каталог таким же. Затем при повторной фиксации вы эффективно создаете коммит, содержащий работу из всех 10 коммитов.
Обратите внимание, что обычно требуется принудительное нажатие, поскольку этот параметр перезаписывает историю вашей ветви.
Другим подходом будет использование интерактивной перебазировки и выбор squash
для коммитов, которые вы хотите раздавить. Эта опция также переписывает историю.