この回答に従って、履歴を縮小できると思います。
github gist の特定のリビジョンを削除するには?
履歴のどのポイントを保持するかを決定します。
pick <hash1> <commit message>
pick <hash2> <commit message>
pick <hash3> <commit message> <- keep
pick <hash4> <commit message>
pick <hash5> <commit message>
pick <hash6> <commit message> <- keep
pick <hash7> <commit message>
pick <hash8> <commit message>
pick <hash9> <commit message>
pick <hash10> <commit message> <- keep
次に、各「キープ」の後の最初のものを「ピック」のままにし、残りを「スカッシュ」とマークします。
pick <hash1> <commit message>
squash <hash2> <commit message>
squash <hash3> <commit message> <- keep
pick <hash4> <commit message>
squash <hash5> <commit message>
squash <hash6> <commit message> <- keep
pick <hash7> <commit message>
squash <hash8> <commit message>
squash <hash9> <commit message>
squash <hash10> <commit message> <- keep
次に、エディターを保存して終了し、リベースを実行します。各「保持」ポイントで、メッセージ エディターがポップアップし、前の「選択」から「保持」コミットまでの範囲の結合されたコミット メッセージが表示されます。その後、最後のメッセージを保持するか、実際にそれらを組み合わせて、すべての中間状態を保持せずに元の履歴を文書化できます。
そのリベースの後、中間ファイル データは引き続きリポジトリに残りますが、参照されなくなります。git gc
実際にそのデータを取り除くことができます。