3

herokuとgitを使用した基本的なワークフローでFacebookアプリを更新しています。私だけがそれに取り組んでいて、起こる唯一のことは週に一度の新しいバイナリです。git commit -am "new update" git push heroku

バイナリは約30MBに成長しました。そして最近、すべてのプッシュコマンドは次のように失敗します:オブジェクトのカウント:7、完了。オブジェクトの圧縮:100%(4/4)、完了。致命的:sha1ファイル''書き込みエラー:無効な引数エラー:一部の参照を'mysecretgitplace'にプッシュできませんでした

私は多くの場所を調べましたが、これは非常に一般的な問題であり、特に何も原因ではなく、何かが原因である可能性があることがわかりました。時間の経過とともに変化したのはバイナリのサイズの増加とコミットの数の増加だけなので、おそらくそれだけです。

だから今、私はこの1つのバイナリファイルの履歴を削除/破棄/消去することによって使用しているサーバースペースを減らしてみたいと思います(現在のバージョンを除いて(ヘッド/マスターのサーバー上にあるものは何でも)。バイナリを毎週送信することに加えて、これを時々行います。

それを可能にするコマンドはありますか?(新しいバイナリを送信すると、ファイルの「削除された」履歴全体を再度追加することなく)

(私が自分のゲームで作業したいだけで、すべてのサーバーやバージョン管理などを気にしないことはおそらく明らかです。)

4

1 に答える 1

1

Gitを使用すると、履歴をフィルタリングして削除できます。

あなたの場合、最初の例でうまくいくはずですgit filter-branch --index-filter 'git rm --cached --ignore-unmatch filename' HEAD

それでも、このコマンドと、これを有効にするにはリポジトリとリモートで実行する必要があることについて注意深く読む必要があります(特に、git gcローカルリポジトリで使用する必要があります)。

これについて詳しくは、githubヘルプセクションをご覧ください。

ちなみに、gitは大きなファイルの管理にはあまり適していません(git annex潜在的な解決策を探してください)。

于 2012-10-15T08:42:37.147 に答える