Gitの.pyc
ファイルを無視するにはどうすればよいですか?
.gitignore
に入れると機能しません。それらを追跡せず、コミットのチェックをしないようにする必要があります。
.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
リポジトリの初期化直後に、gitリポジトリツリーのルートフォルダにある.gitignore
ファイルに追加します。
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/ )から適応
*.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 "{}" \;
これにより、gitリポジトリからapp.pyc
ファイルのみが削除されます。