2

履歴にいくつかの大きなファイルがあるため、私のリポジトリは非常に大きくなっています。大きなファイルを見つけて削除するために、次を実行しています。

$ git verify-pack -v .git/objects/pack/pack-..e8a.idx | sort -k 3 -n | tail -3 

結果は次のようになります。

12eb660ea206e1b7bd42cb8b525aabe9e86a5064 blob   56413247 15833578 5889838
89b377ace5639c0914bb49d28d0c8e97b0f19a16 blob   56414112 15833631 81736530
4ea83fb57b49f7afdbe99e4f043509d184338f5b blob   56426618 15837504 48628334

最大のファイルのパスを見つけるために、次を実行します。

$ git rev-list --objects --all | grep 4ea83fb57b49f

結果は次のとおりです。

4ea83fb57b49f7afdbe99e4f043509d184338f5b path/to/my/large_file

しかし、git logこのファイルを次のように実行すると:

$ git log --oneline --branches -- path/to/my/large_file

ログは表示されません。さらに、履歴からバイナリ ファイルを削除しようとするたびに、次のようにします。

$ git filter-branch --index-filter  \
'git rm --ignore-unmatch --cached path/to/my/large_file'

私は受け取ります:

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

何か案は?

4

1 に答える 1

1

大きなオブジェクトへのパスが別のブランチにある可能性があります。--allinコマンドを使用しfilter-branchて、すべてのブランチから大きなファイルを削除します。

于 2016-10-25T13:51:07.823 に答える