#30

[追記]

ほとんど同じことを書いている方がいらっしゃった.より詳細なので,何かの間違いでここをご覧になった方は下記ページを参考にしてください.

livingdead0812.hatenablog.com

 

=======================

 

仕組みを覚える間も無く来てるので説明できているかどうかわからないが......

jupyter notebook で.ipynb ファイルを作成/編集し,画像で結果を出力したままcheckpoint をsave するとファイルサイズが篦棒に大きくなり,結果,github のpush容量上限に引っかかってgithub 上にcommit が反映されない(ローカルの方ではbranch が残っている)問題が発生.

慌てて ignore でファイル指定しても,キャッシュが消えてくれないので意味がなかった.

 

で解決:

qiita.com

support.atlassian.com

を参考にした.

1. シェルスクリプトgit_find_big.shを上記サイトからローカルレポジトリ にダウンロード,実行

bash git_find_big.sh
All sizes are in kB's. The pack column is the size of the object, compressed, inside the pack file.
size pack SHA location
592 580 e3117f48bc305dd1f5ae0df3419a0ce2d9617336 media/img/emojis.jar
550 169 b594a7f59ba7ba9daebb20447a87ea4357874f43 media/js/aui/aui-dependencies.jar
518 514 22f7f9a84905aaec019dae9ea1279a9450277130 media/images/screenshots/issue-tracker-wiki.jar
337 92 1fd8ac97c9fecf74ba6246eacef8288e89b4bff5 media/js/lib/bundle.js
240 239 e0c26d9959bd583e5ef32b6206fc8abe5fea8624 media/img/featuretour/heroshot.png

上記サイト の出力結果をコピペしてます.上に行けば行くほど大きなファイルサイズになる(自分のローカルレポジトリ で実行したところ120MB くらいになってた)

2. 消したいファイル名"xxx"を-unmatch xxx と指定し実行.

git filter-branch --index-filter 'git rm --ignore-unmatch media/img/emojis.jar ' --tag-name-filter 'cat' -- --all

ここで私の場合は消したいファイル名にスペースが入っており

WARNING: Ref 'refs/heads/main' is unchanged

とエラーが出て実行できなかった.初歩的なことだがファイル名と正しく指定しないとだめ.--index-filter "git rm --ignore-unmatch 'hoge fuga.xxx'" とする.

実行に成功すると下記のようなログが表示される.

Rewrite hogehogeSHA 
rm 'hoge fuga.xxx'
...

 

 3. 削除できたらプッシュ

git push --all --force

 

バックアップは忘れずに.