2017-09-17 6 views
1

geoplotというプロジェクトがあり、Pythonで地理空間プロットが行われています。そのコードはGitHubのgit経由で配布されます。 You can check it out hereGitHubのgitリポジトリにある大きなファイルを取り除く際のトラブルシューティング

このパッケージの開発プロセスの一環として、geoplotには、data/という名前のフォルダがアップロードされ、さまざまな形式の多数のデータファイルが格納されていました。これらのデータファイルを使用して、無料のexample galleryの例を入力しました。

しかし、これらのファイルはリポジトリ全体のサイズを最大150MBB(issue)まで拡張します。これは明らかにあまりにも多く、私はそれらを取り除くべき時です。

問題は、現在のHEADからこれらのファイルを削除するだけでなく、git履歴全体からこれらのファイルを削除する必要があることです。私はgit rebaseを使って手動のアプローチを試みましたが、それはうまくいきませんでした。それでthe canonical SO question on the matterで推奨されているようにBFG Repo-Cleanerツールを試しました。

BFGファイルを削除しても問題ありません。—履歴のどこにも存在しなくなりました。しかし、レポのサイズ(実行時に見られるようにhttps://github.com/ResidentMario/geoplot.git)は全くダウンしませんでした!ここで

は私が(マイナスプリントアウト)しようとしたものです:

java -jar ../bfg-1.12.15.jar --delete-folders "data" . 
git reflog expire --expire=now --all && git gc --prune=now --aggressive 
git push --set-upstream https://github.com/ResidentMario/geoplot.git master --force 

フルプリントアウトがin an issue on GitHubです。

私は間違っていましたか?この無駄なスペースをどのようにして消滅させるのかを診断するにはどうすればよいですか?

答えて

1

私はreflog and gc back in 2010と言いましたが、removing old objectsとも言いました。
gc should be followed by a repack

最初に、レポを再度クローンしても、同じサイズであることを確認してください。

OP Aleksey Bilogurin the commentsに言及したよう:

  • あなたのタグは、古いデータを参照していないことを確認し、その後、あなたにも、すべてのタグとブランチ(だけでなく、master)プッシュを強制する必要がある必要があります

    git push --tags origin --force 
    
  • 生成されたデータはレポ履歴から削除する必要があります。

+0

私はBFGのドキュメントで説明されている動作に従っています(つまり、これらのコマンドが何をしているかはほとんど分かりません)。レポはまだ同じサイズに解凍されます。 [ここ](https://github.com/ResidentMario/geoplot/issues/37#issuecomment-330067839)を参照してください。 –

+0

クローンについて:新鮮なクローンは同じサイズですか? – VonC

+0

新しい 'git'クローンは〜100 MiBです。 Anthony [タグを再作成するように提案](https://github.com/ResidentMario/geoplot/issues/37)、タグのサイズを24 MiBに縮小しました。 –

-1

これは、filter-branchを利用して外部ツールなしで解決できる問題のようです。

dataディレクトリのすべての履歴を削除する場合は、リポジトリのルートから次のコマンドを実行できます。

git filter-branch --index-filter 'git rm --cached --ignore-unmatch -r path/to/data' HEAD 

これは、現在のHEADポインタの祖先のすべてのコミットを変更します。その場合、レポから手荷物を完全に取り除くために、これらの新しく作成されたコミットに他のすべてのブランチとタグを更新する必要があります。

関連する問題