gitとpythonを使用すると面白い状況が続きますが、他の状況でも起こりそうです。新しいブランチをチェックアウトするときに、* .pycファイルやそれ以外の場合は空のディレクトリを自動的に削除します
私がフォルダ/ foo /でgit repoを作ったとしましょう。そのフォルダに/foo/program.pyを入れます。私はprogram.pyを実行し、program.pycが作成されます。私は.gitignoreファイルに* .pycを持っているので、gitはそれを追跡しません。
ここで別のブランチ、devを作ってみましょう。このdevブランチでは、/ foo /フォルダを完全に削除します。
これで、masterブランチに戻り、/ foo /が再表示されます。私はprogram.pyを実行し、program.pycファイルが再び現れます。すべては順調です。
私はdevブランチに戻ります。/foo /ディレクトリは消えます。 devブランチではなくmasterブランチにのみ存在します。しかし、それはまだそこにあります。どうして?無視されたprogram.pycファイルは、ブランチの切り替え時にフォルダが削除されないようにするためです。
この問題の解決策は、分岐を切り替える前にすべての* .pycファイルを再帰的に削除することです。私はこのコマンドで簡単にそれを行うことができます。
問題は、私がブランチを変更するたびにほとんどこれを行うことを覚えておかなければならないということです。私はこのコマンドのエイリアスを作ることができましたが、ブランチを変更するたびにタイプすることを覚えておく必要があります。私もgit-branchのエイリアスを作ることができましたが、それはうまくいきません。 git branchコマンドはブランチを変更するだけでなく、私が使用するたびにすべてのpycファイルを削除したくありません。ヘック、私は非パイソンレポでそれを使用するかもしれない、そして何?
ブランチを変更したときにのみ実行するgitフックを設定する方法はありますか?または、ブランチを切り替えるたびに、* .pycファイルをすべて消去するように設定する方法がありますか?
find + rmの代わりに使うことができる 'git clean'コマンドがあります(詳細はマンページを参照してください)。 –
この質問に言及する記事があります:http://codeinthehole.com/writing/a-useful-git-post-checkout-hook-for-python-repos/記事のgitフックコードは、解答に触発されています下記:https://gist.github.com/miebach/7391024 – mit
Javaプロジェクトにもこれらが必要ですか? '* .class'ファイルを削除するには? – dashmug