gitで特定のフォルダ名に入っているものを管理から外す方法

pythonのプロジェクトをgitで管理する際に__pycache__がコミットされていたので、それを外したくて、考えました。

特定のフォルダ名に入っているものを管理から外す方法

結果から言うと、これでできます。

git rm --cached `git ls-files | grep __pycache__`

あとは、
gitignoreでpychacheの拡張子を外します。

*.pyc

解説

git ls-filesで管理下にある、ファイルが一覧で取得できるので、grep__pycache__(特定のフォルダ名)を含む行を検索します。
※同じファイル名がある場合は/__pycache__/とかにしてね。
それを`(バッククォート)で囲うとそれのコマンドが先に行われてその出力を対象にしてくれます。

実際キャッシュファイル外すのってどうなの?

pythonの場合はキャッシュ名がバージョンだったりするので、
コミットされてたら、このバーションで動かして動いてたんだなって感じにはなるかもしれないです。
同じ環境を絶対再現したいというのであれば、コミットしたほうが良いのかもしれません。

ただ、私としては、きれいにソースコードだけを収めたいので、外します。
キャッシュ外したら動かないとかなにか、ほかに問題があるでしょ

あと、めんどくさいのが、サーバーとかでpullしてそこでキャッシュできて
commitしないとpullできないよとか言われたらだるい。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です