仕事で必要になったので、ファイルを履歴ごと消す方法を試してみました。 ファイルを消しても履歴は残っている 例えば、1GB のバイナリファイルを Commit & Push したとします。 そして、それを git rm で削除したとしてもリポジトリの容量は減りません。 なぜか? git rm は「ファイルが削除されたことにするコマンド」であって、「Git リポジトリ内に保存されている履歴を消すコマンド」ではないからです。 このサイトに書かれていますが、Git は「差分」ではなく「スナップショット」を保存して、「どのスナップショットを参照するのか?」をコミット単位ごとに切り替える仕組みです。 git rm は、この「どのスナップショットを参照するのか?」という情報を削除するコマンドです。 もし、データを丸ごと消したいのであれば、保存されている全ての「スナップショット」を消さなければなりません。