web-dev-qa-db-ja.com

Git:git cleanでファイルを除外する

私は大きなpython=プロジェクトに取り組んでいます。pycファイルと*〜ファイルがあると本当に気分が悪くなります。それらを削除したいと思います。-X git cleanのフラグは、追跡されていないファイルを削除します。ご想像のとおり、私は追跡していません.pycまたは*~ファイル。そして、それはトリックになります。問題は、私がlocal_settings.py gitクリーン後に保持したいファイル。

だから、これは私が持っているものです。

.gitignore:

*.pyc
*~
local_settings.py

このコマンドを実行すると:

git clean -X -n -e local_settings.py

私はこの結果のリストを取得します:

Local_settings.pyを削除します
requirements.txtを削除します〜
(他の束の)〜ファイルを削除します
pycファイル(他の束)を削除します

Local_settings.pyファイルを削除したくありません。私はそれを行うために多くの方法を試しましたが、それを達成する方法がわかりません。

git clean -X -n -e local_settings.py
git clean -X -n -e "local_settings.py"
git clean -X -n --exclude=local_settings.py
git clean -X -n --exclude="local_settings.py"

そして、何も機能しないようです。

編集:

後世のために、それを行う正しい方法は(ありがとう@Rifat)です:

git clean -x -n -e local_settings.py # Shows what would remove (-n flag)
git clean -x -f -e local_settings.py # Removes it (note the -f flag)
35
santiagobasulto

大文字の代わりに小さなxを使ってみてください。お気に入り - git clean -x

git clean -x -n -e local_settings.py # Shows what would remove (-n flag)
git clean -x -f -e local_settings.py # Removes it (note the -f flag)

the git documentation から:

   -x
       Don't use the standard ignore rules read from .gitignore (per
       directory) and $GIT_DIR/info/exclude, but do still use the ignore
       rules given with -e options. This allows removing all untracked
       files, including build products. This can be used (possibly in
       conjunction with git reset) to create a pristine working directory
       to test a clean build.

   -X
       Remove only files ignored by git. This may be useful to rebuild
       everything from scratch, but keep manually created files.
27
Rifat
git clean -X -n --exclude="!local_settings.py"

動作します。私がグーグルして this page を取得したときにこれを発見しました。

17
forivall

このカテゴリに該当するローカルファイルを.git/info/excludeに配置します(たとえば、my IDEプロジェクトファイル)。これらは次のようにクリーンアップできます:

git ls-files --others --exclude-from=.git/info/exclude -z | \
    xargs -0 --no-run-if-empty rm --verbose

どこ:

  • --others:追跡されていないファイルを表示します
  • --exclude-from:リストから除外する標準のgit ignoreスタイルファイルを提供します
  • -z/-0:\ nの代わりに\ 0を使用して名前を分割します
  • --no-run-if-empty:リストが空の場合はrmを実行しません

エイリアスを作成できます。例:

git config --global alias.myclean '!git ls-files --others --exclude-from=.git/info/exclude -z | xargs -0 --no-run-if-empty rm --verbose --interactive'

--interactiveは、強制的に削除するためにgit myclean -fを実行する必要があることを意味します。

リファレンス: http://git-scm.com/docs/git-ls-files (およびデフォルトの.git/info/excludeの最初の行)

4
Jonah Graham

Python 2.6+を実行している場合は、環境変数PYTHONDONTWRITEBYTECODEtrueに設定するだけです。次のコードを.profileまたは.bashrcを使用して、プロファイルに対して完全に無効にします。

export PYTHONDONTWRITEBYTECODE=true

または、作業している特定のプロジェクトでそれを実行したい場合は、毎回シェルで(またはvirtualenvとvirtualenvwrapperを使用している場合はvirtualenv initスクリプトの1つで)上記を実行する必要があります。または、pythonを呼び出すときに-Bパラメータを単に渡すことができます。たとえば、.

python -B manage.py runserver
0
Chris Pratt