git filter-branch よりも 100 倍高速でシンプル
このスレッドには非常に優れた回答がありますが、それらの多くは時代遅れです。使用git-filter-branch
が難しく、大きなリポジトリでは非常に遅いため、使用は推奨されなくなりました。
git-filter-repo
はるかに高速で使いやすいです。
git-filter-repo
は Python スクリプトで、github: https://github.com/newren/git-filter-repoで入手できます。インストールすると、通常の git コマンドのように見え、git filter-repo
.
必要なファイルは 1 つだけです: Python3 スクリプト git-filter-repo. PATH 変数に含まれるパスにコピーします。Windows では、スクリプトの最初の行を変更する必要がある場合があります (INSTALL.md を参照)。システムに Python3 をインストールする必要がありますが、これは大した問題ではありません。
最初に実行できます
git filter-repo --analyze
これは、次に何をすべきかを判断するのに役立ちます。
DVD-rip ファイルはどこからでも削除できます。
git filter-repo --invert-paths --path-match DVD-rip
Filter-repo は本当に高速です。私のコンピューターでは、filter-branch で約 9 時間かかったタスクが、filter-repo で 4 分で完了しました。filter-repo を使用すると、さらに多くの便利なことができます。これについては、ドキュメントを参照してください。
警告:これはリポジトリのコピーに対して行ってください。filter-repo の多くのアクションは元に戻すことができません。filter-repo は、変更されたすべてのコミット (もちろん) とそのすべての子孫のコミット ハッシュを最後のコミットまで変更します!