誤って、.pyc ファイルをマスター リポジトリにプッシュしてしまいました。今、それらを削除したいのですが、できません。Bitbucket サイトから直接削除する方法はありますか?
10 に答える
いいえ、BitBucket インターフェイスから直接削除することはできませんが、ローカル チェックアウトで削除できます(find ./ -type f -name '*.pyc' -exec git rm {} \;
または、各 pyc ファイルを 1 つずつ git rm します)。次に、変更をコミット/プッシュします。
最後に、同じ間違いを繰り返さないように、リポジトリのルートにファイルを作成し、その内容で「.gitignore」という名前を付けることができます。
*.pyc
*~
*.swp
*~ および ~.swp は、他の一般的に忘れられているファイル タイプであり、しばしば誤ってプッシュされます。gitignore の github doc を参照してください https://help.github.com/articles/ignoring-files (およびいくつかの優れたデフォルトについては、.gitignore ファイルのリポジトリ)。
git rm *.pyc --cached
git commit -a -m'remove pyc from index'
git push
PS: 質問の日付はわかりますが、この解決策の方がよさそうです。それは誰かを助けるかもしれません..
私は simeg のソリューションを使用しましたが、誤ってブランチに追加された大量の *.pyc ファイルも削除したいと考えていました。awk を使用してキャッシュから再帰的に削除しました。
git status | awk '{if($1=="modified:" && $2!=".gitignore") ; system("git rm --cached "$2)}'
次に、ローカルからファイルを削除しました
find . -name *.pyc -delete
すべての.pyc
ファイルを削除するにはgit rm -rf *.pyc
次に、を .gitignore ファイルに追加*.py[co]
します。(これにより、将来のコミットで .pyc および .pyo ファイルがコミットされなくなります)
デフォルトの Bitbucket では、リポジトリに .gitignore ファイルがないため、次のことができます。
- ローカルに .gitignore (プッシュしないでください) を作成し、*.pyc を行として追加できます。
- Github リポジトリの .gitignore をコピーして、このファイルの行として *.pyc を追加できます。プッシュすることも、ローカル リポジトリに保持することもできます。
PyDev for eclipseを使用した簡単な方法。
プロジェクトの PyDev パッケージ エクスプローラーに移動して、次の操作を行います。
右クリック+ Pydev / *.pyc *.pyo および *$py.class ファイルを削除
削除されたファイルの数を示すウィンドウがポップアップ表示されます。
オプション: 変更をチーム/サーバーにコミットします。
- 右クリック+チーム / コミット
コミット ウィンドウでは、.pyc を削除したため、追加できる .pyc は表示されません。また、以前にそのようなファイルをコミットした場合は、今すぐ「削除」をコミットできるはずです。
===> ローカルとサーバーのリポジトリから *.pyc *.pyo と *$py.class ファイルがなくなりました :)
楽しみのためのワンライナー:
git status | grep pyc | sed -e 's/ new file: //g' | xargs -I {} git rm --cached {}
すべてのpycファイルを削除するための別のライナー。
探す 。-name '*.pyc' -exec git rm {} \;
コミットしてgitignoreを追加するには、他の回答の手順に従うことを忘れないでください。