0023 — Git Squash
Подсмотрел на StackOverflow хорошее решение, как сделать сжатие коммитов, если в ветке есть коммит-слияние (merge commit).
Переключиться на основную ветку:
git checkout master
Создать временную ветку:
git checkout -b temp master
Сжать коммиты в сжимаемой ветке:
git merge --squash feature
Зафиксировать изменения:
git commit
Из сообщения коммита нужно будет удалить всё лишнее.
Переключиться на сжимаемую ветку:
git checkout feature
Переместить HEAD:
git reset --hard temp
Удалить временную ветку:
git branch -d temp
Вытолкнуть изменения на сервер:
git push --force
Источник: StackOverflow.