Git リポジトリのサイズを縮小するための良いチュートリアルを探してみましたが、見つかりませんでした。
リポジトリのサイズを縮小するにはどうすればよいですか?
約10MBですがヘロク50 MB しか許可されておらず
、アプリケーションの開発はまだ完了していません。
私はいつもの容疑者(ログ、ベンダー、ドキュメントなど)を.gitignoreファイルは既に存在します。ただし、最近.gitignore
を追加したばかりです。
私に何ができる?
ベストアンサー1
2021年2月更新、11年後:新しいgit maintenance
指示(マニュアルページ)が に取って代わりgit gc
、スケジュール可能。
オリジナル:git gc --aggressive
プルーンプロセスを強制的に実行する方法の1つです(確かにgit gc --aggressive --prune=now
:)。その他のコマンドリポジトリをクリーンアップすることもgit gc
できます。ただし、忘れないでください。リポジトリのサイズを増やす!
filter-branch
の後に使用して、履歴から削除するディレクトリをマークすることもできます(さらにスペースを確保します)。ここしかし、それは誰もあなたのパブリックリポジトリからプルしていないことを意味します。filter-branch
バックアップリファレンスを保持できる.git/refs/original
、そのディレクトリもクリーンアップできます。
最後に、前述したようにこのコメントでそしてこの質問; reflog をクリーンアップすると次のことが役立ちます:
git reflog expire --all --expire=now
git gc --prune=now --aggressive
さらに完全な、そしておそらく危険な解決策はgitリポジトリから未使用のオブジェクトを削除する
ご了承くださいgit filter-repo
現在(Git 2.24+、2019年第4四半期)は、廃止git filter-branch
またはBFG: これはPythonベースのツールであり、インストールされる初め。
# Find the largest files in .git:
git rev-list --objects --all | grep -f <(git verify-pack -v .git/objects/pack/*.idx| sort -k 3 -n | cut -f 1 -d " " | tail -10)
# Strat filtering these large files:
git filter-repo --path-glob '../../src/../..' --invert-paths --force
#or
git filter-repo --path-glob '*.zip' --invert-paths --force
#or
git filter-repo --path-glob '*.a' --invert-paths --force
git remote add origin [email protected]:.../...git
git push --all --force
git push --tags --force