2012-01-14 9 views
1

私は今、私は大きなベンダーのフォルダを持っていましたが、私は使用してそれを削除し、Herokuのサーバに私のGitのレポをプッシュしようとしている:GITでキャッシュを更新するには?

git rm -r --cached vendor 

をそして、私はとにかく後、その段階では問題がありませんでした私はファイルを削除し、コミットとすべてを行った、それは私がまだ同じファイル(私が削除したファイル)を使用してプッシュするたびに、私はそれが何とかキャッシュされていることをかなり確信しているので、キャッシュをフラッシュしますか?私はインデックスを更新するようなものをたくさん試しましたが、今は2 MBの代わりに20 MBをまだ押しているので非常に奇妙です。

ご協力いただければ幸いです。

+2

それはあなたの状況を理解することは本当に難しいです。あなたが実際にあなたが押している支店でそれらのファイルの削除を約束しましたか? ( 'git show branch-name:vendor'は、パスが存在しないことを通知しなければなりません)ホストされているリポジトリのサイズについて心配していますか? (これらのファイルを完全に削除して履歴を書き直さなければ、そのスペースを取り戻すことはできません)また、「インデックス」などの用語については混乱しているようです。http://progit.org/bookの最初の部分/またはhttp://book.git-scm.com/、またはhttp://tom.preston-werner.com/2009/05/19/the-git-parable.html – Cascabel

+0

「私がまだプッシュするときはいつでも同じファイルを使用してください "< - あなたは何を意味していますか?また、 'git rm -r --cached'はインデックスからファイルを削除することを忘れないでください。作業ツリーではありません。 – fge

+0

ここでは完全に混乱していますが、例えばmasterブランチではベンダーディレクトリを削除しました。パスは存在しませんが、何らかの理由でファイルがまだ残っているように見えます(少なくともプロジェクト全体のサイズは少なくとも同じです)、フォルダを完全に削除するにはどうすればよいですか?すべて、私はちょうど私がherokuサーバーにコードをプッシュするときに、それほど時間を費やすのではなく、単純にしたいと思っています。 –

答えて

4

私はちょうど歴史とすべてからのように、フォルダを完全に削除すると思いますか?

これはgit filter-branchが便利な場合があります。以下は、そのトリックを行う必要があります。

$ git filter-branch --index-filter 'git rm --cached --ignore-unmatch vendor' --prune-empty -- --all 

注:あなたは(下のリンク参照このについての詳細を)試してみて、いくつかの領域を再利用する場合は特に、git filter-branchで再生する前に、プロジェクトのローカルコピーを作成することを確認します。

履歴がきれいになったら、あなたのアップストリームレポジトリを書き換えられたものに置き換えてください。

$ git push origin --all --force

私は強くは、任意のコマンドを実行する前に、以下のリンクをクリックして読むことをお勧めします。本当に:)

参照

関連する問題