git コミット履歴から大きなバイナリ ファイルを削除する方法についていくつかの スレッドを読みましたが、私の問題は少し異なります。 したがって、ここでの私の質問は、手順を理解して確認することです--
私のgitリポジトリは~/foo
. すべての *.jpg、*.png、*.mp4、*.ogv (など) をリポジトリ内のディレクトリの 1 つ、特に~/foo/public/data
.
ステップ 1. ファイルを削除する
~/foo/data > find -E . -regex ".*\.(jpg|png|mp4|m4v|ogv|webm)" \
-exec git filter-branch --force --index-filter \
'git rm --cached --ignore-unmatch {}' \
--prune-empty --tag-name-filter cat -- --all \;
ステップ 2. バイナリ ファイル拡張子を .gitignore に追加し、.gitignore をコミットします。
~/foo/data > cd ..
~/foo > git add .gitignore
~/foo > git commit -m "added binary files to .gitignore"
ステップ 3. すべてプッシュ
~/foo > git push origin master --force
私は上記の正しい軌道に乗っていますか?いわば、一度切る前に二度測りたい。
更新:まあ、上記は私にエラーを与えます
You need to run this command from the toplevel of the working tree.
You need to run this command from the toplevel of the working tree.
..
そのため、ツリーを最上位に移動してコマンドを再実行したところ、すべて機能しました。