本番サーバーにベア git リポジトリがあり、ローカル リポジトリから単純なgit push prod
.
すべてが正常に機能しており、今までの git リポジトリは数百 MB ですが、リポジトリがサーバー上で無制限に成長するという考えには満足できません。
ベア リポジトリの古いファイルを削除する方法はありますか、それとも展開構成を完全に変更する必要がありますか?
本番サーバーにベア git リポジトリがあり、ローカル リポジトリから単純なgit push prod
.
すべてが正常に機能しており、今までの git リポジトリは数百 MB ですが、リポジトリがサーバー上で無制限に成長するという考えには満足できません。
ベア リポジトリの古いファイルを削除する方法はありますか、それとも展開構成を完全に変更する必要がありますか?
リポジトリが数百 MB で、そこに大きなファイルがない場合は、何か問題があります。履歴から削除したい大きなファイルが過去に誰かによってコミットされた可能性があります。そのようなファイルを見つける方法については、こちらを確認してください: HEAD に存在しない x メガバイト以上の git repo 内のファイルを検索します
現在も将来も、レポのサイズは問題になりません。比較のために: git ソース リポジトリには 34251 個のコミットが含まれており、サイズは 57 MB です。Linux カーネルのリポジトリのサイズは 700MB (カーネルの作業コピーは 500MB) です。
履歴を書き換えて大きなファイルを削除する以外に、git リポジトリを縮小する方法はありません。それは必要ないはずだからです。
「PuppetGit」の一部として、私は古いコミットを見て、グラフト機能を (ab) 使用してそれらを削除するスクリプトを実装しました。
ppg-push-reports 内の ppg のコードを見てください。http://repo.or.cz/w/puppet-git.git/の Git リポジトリ
私は初期の git ハッカー グループの一員だったので (他の SCM からの移行を容易にするためにいくつかのインポーターを作成または維持していました)、git のツールについていくつかのことを知っています。私は絶対確実ではないので、注意して使用してください。
ひ!〜マーティン