手順はgitbookに記載されています:
スカッシュコミット
インタラクティブなリベースツールを使用して、一連のコミットを取得し、それらを1つのコミットにまとめることもできます。スクリプトは、リベースメッセージに役立つ指示を入れます。
#
# Commands:
# p, pick = use commit
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
#
# If you remove a line here THAT COMMIT WILL BE LOST.
# However, if you remove everything, the rebase will be aborted.
#
「pick」または「edit」の代わりに「squash」を指定すると、Gitはその変更とその直前の変更の両方を適用し、コミットメッセージをマージします。したがって、これら3つのコミットから1つのコミットを作成する場合は、スクリプトを次のようにします。
pick f7f3f6d changed my name a bit
squash 310154e updated README formatting and added blame
squash a5f4a0d added cat-file
いくつかのコミットを1つにまとめたくないが、実際にはコミットを完全に削除したい場合は、スクリプトで指示されていることを実行してください。
# If you remove a line here THAT COMMIT WILL BE LOST.