0023 — Git Squash

Подсмотрел на StackOverflow хорошее решение, как сделать сжатие коммитов, если в ветке есть коммит-слияние (merge commit).

  1. Переключиться на основную ветку:

    git checkout master
    
  2. Создать временную ветку:

    git checkout -b temp master
    
  3. Сжать коммиты в сжимаемой ветке:

    git merge --squash feature
    
  4. Зафиксировать изменения:

    git commit
    

    Из сообщения коммита нужно будет удалить всё лишнее.

  5. Переключиться на сжимаемую ветку:

    git checkout feature
    
  6. Переместить HEAD:

    git reset --hard temp
    
  7. Удалить временную ветку:

    git branch -d temp
    
  8. Вытолкнуть изменения на сервер:

    git push --force
    

Источник: StackOverflow.