回答:
それを入れてください.gitignore
。しかし、gitignore(5)
manページから:
· If the pattern does not contain a slash /, git treats it as a shell glob pattern and checks for a match against the pathname relative to the location of the .gitignore file (relative to the toplevel of the work tree if not from a .gitignore file). · Otherwise, git treats the pattern as a shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match a / in the pathname. For example, "Documentation/*.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html".
そのため、適切な*.pyc
エントリへのフルパスを指定するか.gitignore
、リポジトリルートからの任意のディレクトリにあるファイルに含めます(両端を含む)。
次の行を追加する必要があります。
*.pyc
.gitignore
右リポジトリ初期化した後、あなたのgitリポジトリツリーのルートフォルダ内のファイル。
以下のようralphtheninjaは言った、あなたはただの行を追加した場合、事前にそれを行うためにするのを忘れた場合は、.gitignore
ファイルを、すべての以前にコミットし.pyc
、あなたがリポジトリからそれらを削除する必要がありますので、ファイルはまだ、追跡されます。
Linuxシステム(またはMacOSXのような「親と子」)を使用している場合は、リポジトリのルートから実行する必要がある次の1行のコマンドだけですばやく実行できます。
find . -name "*.pyc" -exec git rm -f "{}" \;
これは単に意味します:
私が現在いるディレクトリから始めて、拡張子が
.pyc
で終わるすべてのファイルを見つけ、ファイル名をコマンドに渡しますgit rm -f
*.pyc
追跡されたファイルとしてgitからファイルを削除した後、この変更をリポジトリにコミットしてから、最終的にファイルに*.pyc
行を追加でき.gitignore
ます。
(http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/から変更)
私は以前の投稿の文を使用しようとし、再帰的に動作しないようにして、いくつかのヘルプを読んでこの行を取得します:
find . -name "*.pyc" -exec git rm -f "{}" \;
gitをクリーンに維持するには、*。pycを.gitignoreファイルに追加するためにpdが必要です
echo "*.pyc" >> .gitignore
楽しい。
答えてくれて@Enricoに感謝します。
virtualenvを使用している.pyc
場合は、現在のディレクトリ内にさらにいくつかのファイルがあり、彼のfindコマンドによってキャプチャされます。
例えば:
./app.pyc
./lib/python2.7/_weakrefset.pyc
./lib/python2.7/abc.pyc
./lib/python2.7/codecs.pyc
./lib/python2.7/copy_reg.pyc
./lib/python2.7/site-packages/alembic/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/api.pyc
すべてのファイルを削除しても無害だと思い.pyc
ますが、メインディレクトリのファイルのみを削除する場合は、次のようにします。
find "*.pyc" -exec git rm -f "{}" \;
これapp.pyc
により、gitリポジトリからファイルのみが削除されます。