誤ってPython仮想環境ディレクトリvenv
をすべてのgitcommitおよびpushアクティビティに含めてしまいました。
に追加venv
しました.gitignore
。しかし、私の.gitフォルダーはまだ巨大です(以前のコミットとvenvの追跡のために想定しています)。
Herokuが悪夢を引き起こしているので、どうすればgitに追跡を完全に忘れさせvenv
、フォルダーを適切なサイズに戻すことができますか?.git
誤ってPython仮想環境ディレクトリvenv
をすべてのgitcommitおよびpushアクティビティに含めてしまいました。
に追加venv
しました.gitignore
。しかし、私の.gitフォルダーはまだ巨大です(以前のコミットとvenvの追跡のために想定しています)。
Herokuが悪夢を引き起こしているので、どうすればgitに追跡を完全に忘れさせvenv
、フォルダーを適切なサイズに戻すことができますか?.git
gitリポジトリからファイルを削除してみてください。
git rm --cached venv*
venv
Rich Stoneは、がフォルダの場合、再帰スイッチを使用する必要があると以下に述べています-r
。
git rm --cached -r venv*
マニュアルgit gc
によると、これにより自動ガベージコレクションがトリガーされます。これで問題が解決しない場合は、ここにコメントを残してください。さらにオプションを調査します。
このスレッドを参照してください:追跡されたが現在は.gitignoreにあるファイルについてGitを「忘れる」方法は?
現在のコミットからファイルを取得するのは簡単ですが、ファイルサイズを小さくするために履歴からファイルを完全に削除するのは面倒です。Gitリポジトリのコミット履歴から大きなファイルを削除/削除する方法を参照してください。またはhttps://help.github.com/articles/remove-sensitive-data
最新のコードを新しいgitリポジトリにエクスポートして最初からやり直し、古いコードをアーカイブ用に保持する方が速い場合があります。
ファイルを入れても.gitignore
、リポジトリからファイルは削除されません。
git filter-brach
リポジトリからファイルまたはディレクトリを完全に削除するには、を使用する必要があります。これを行うには、次のコマンドを使用します。
git filter-branch --index-filter 'git rm --cached --ignore-unmatch file/or/dir/with/complete/path' --prune-empty --all
これにより、リポジトリの履歴を変更してfile/or/dir/with/complete/path
、すべてのコミットから完全に削除します。git push -f
履歴を変更したため、を実行する必要があることを忘れないでください。