2013-06-01 36 views
33

gitをプロジェクトに使用すると、間違いなくコミットに大きな.zipファイルが追加されました。私はそれをgithubにアップロードするまで気づかなかった。私が気付いたとき、私はctrl-cgit removegit commitをヒットし、もう一度アップロードしました(今はuntrackedファイルで)。gitリポジトリ全体からファイルを完全に削除します

私は.zipをコミットすると、コミットを元に戻すまでリポジトリにとどまりますが、残念ながら私はしませんでした。

誰かがレポからダウンロードしようとすると、それには時間がかかり、時にはgit the remote end hung up unexpectedly(これは私が読んだところではgit configを解決することで解決できます)と非常に迷惑です。

私のポイントは:この特定のコミットバージョンでこの特定のファイルを忘れるリクエストを引き出し/取得する方法がありますか?

+2

の可能重複[ファイルを完全に削除すべてのGitリポジトリのコミット履歴から](@stackoverflow.com/questions/307828/completely-remove-file-from-all-git-repository-commit-history) –

+1

@Cupcakeそれが答えの一部であったことを見てください。質問は本質的に同じではありません。IMHOはもちろんですが、この回答は、その複製物に記載されているよりも優れた文書と有用なリンクを備えています。また、あなたの助けは非常に役に立ちました_1年前;;) –

答えて

60

Githubは、をこのように提供します。この

をカバーStackOverflowの上の他の質問もあり、this section of the Pro Git bookもそこに与えられた例を参照してください:passwords.txtという名前のファイルを削除するには

をあなたの全履歴から、 --tree-filterオプションを使用してフィルタブランチを作成することができます:

$ git filter-branch --tree-filter 'rm -f passwords.txt' HEAD 
Rewrite 6b9b3cf04e7c5686a9cb838c3f36a8cb6a0fc2bd (21/21) 
Ref 'refs/heads/master' was rewritten 

クリーンアップした後、あなたはまた、git gcをさらに圧縮し、リポジトリのクリーンアップしようとすることができます。

今「BFGレポクリーナー」と呼ばれるツール、フィルターにブランチにする https://help.github.com/articles/remove-sensitive-data/

リンクツールのページへの代替としてgithub.comに言及していますがあります

+0

うわー、 'git gc'については知りませんでした。私のドットgitディレクトリは35Mから20Mに縮小しました。 – mojuba

+0

この後どのようにコミットできますか? @Paul Dixon – Alper

+0

FWIW、その最初のリンク(GitHubページへのリンク)はロングショット(私はかなり高速な '--index-filter'を使います;そのコマンドはすべてのブランチとタグに影響します。 );これは関連する警告を提供し、削除前と削除後の非常に有用なステップを説明している)。 –

関連する問題