je travaille sur un gros projet python et je suis vraiment malade si les fichiers .pyc et * ~. Je voudrais les enlever. J'ai vu que l'indicateur -X
de git clean supprimerait les fichiers non suivis. Comme vous pouvez l’imaginer, je ne suis pas en train de suivre les fichiers .pyc
ni *~
. Et ça ferait l'affaire. Le problème est que j'ai un fichier local_settings.py
que j'aimerais conserver après le nettoyage.
Donc, voici ce que j'ai.
.gitignore:
*.pyc
*~
local_settings.py
Quand j'exécute cette commande:
git clean -X -n -e local_settings.py
Je reçois cette liste de résultats:
Enlèverait local_settings.py
Enlèverait les exigences.txt ~
Supprimerait (autre groupe de) ~ fichiers
Supprime (autre groupe de) fichiers pyc
Je ne veux pas supprimer le fichier local_settings.py. J'ai essayé de nombreuses façons de le faire, mais je n'arrive pas à comprendre comment le réaliser.
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"
Et rien ne semble fonctionner.
MODIFIER:
Pour la postérité, la bonne façon de le faire est (Merci @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)
Voulez-vous s'il vous plaît essayer cela avec un petit x
au lieu de celui majuscule. J'aime - 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)
Depuis la documentation git :
-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.
git clean -X -n --exclude="!local_settings.py"
travaux. J'ai découvert cela quand j'ai googlé et j'ai cette page .
Je mets les fichiers locaux qui entrent dans cette catégorie dans .git/info/exclude (par exemple, mes fichiers de projet IDE). Ils vous pouvez faire un nettoyage comme ça:
git ls-files --others --exclude-from=.git/info/exclude -z | \
xargs -0 --no-run-if-empty rm --verbose
Où:
Vous pouvez créer un alias, par exemple:
git config --global alias.myclean '!git ls-files --others --exclude-from=.git/info/exclude -z | xargs -0 --no-run-if-empty rm --verbose --interactive'
Le paramètre --interactive signifie que vous devez utiliser git myclean -f pour forcer la suppression.
Référence: http://git-scm.com/docs/git-ls-files (plus la première ligne du fichier .git/info/exclude par défaut)
Si vous avez déjà commis les pyc et ainsi de suite, procédez comme suit:
Ajoutez * .pyc, * ~ et local_settings.py au .gitignore. Faites ensuite dans votre dépôt git:
find . -name '*.pyc' | xargs rm
find . -name '*~' | xargs rm
alors fais:
git commit -am "get rif of them"
maintenant ils ne devraient plus vous déranger
Si vous utilisez Python 2.6+, définissez simplement la variable d'environnement, PYTHONDONTWRITEBYTECODE
, sur true
. Vous pouvez simplement ajouter ce qui suit à quelque chose comme .profile
ou .bashrc
pour le désactiver entièrement pour votre profil:
export PYTHONDONTWRITEBYTECODE=true
Ou, si vous souhaitez simplement le faire pour un projet particulier sur lequel vous travaillez, vous devez exécuter ce qui précède dans votre shell à chaque fois (ou dans l'un de vos scripts d'initialisation virtualenv si vous utilisez virtualenv et virtualenvwrapper), ou vous pouvez simplement passer le paramètre -B
lorsque vous appelez python
, par exemple.
python -B manage.py runserver