Git: Exclure un fichier avec git propre
je travaille sur un gros projet de python, et je suis vraiment malade si .pyc et *~ fichiers. Je voudrais les supprimer. J'ai vu que le -X
drapeau de git propre serait de retirer sans traces de fichiers. Comme vous pouvez l'imaginer, je ne suis pas suivi .pyc
ni *~
fichiers. Et que ferait l'affaire. Le problème est que j'ai un local_settings.py
fichier que j'aimerais garder après le git propre.
Donc, c'est ce que j'ai.
.gitignore:
*.pyc
*~
local_settings.py
Lorsque j'exécute cette commande:
git clean -X -n -e local_settings.py
- Je obtenir cette liste de résultats:
Permettrait de supprimer local_settings.py
Permettrait de supprimer requirements.txt~
Permettrait de supprimer (d'autres tas de) ~ les fichiers
Permettrait de supprimer (d'autres tas de) pyc fichiers
Je ne veux pas supprimer l'local_settings.py fichier. J'ai essayé beaucoup de façons de le faire, mais je ne vois pas comment réaliser cela.
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.
EDIT:
Pour la postérité, de 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)
- Embrasser la
~.pyc
s, configurer votre éditeur de texte pour placer le temp/les fichiers de sauvegarde dans un autre répertoire (ou pas du tout) et oubliergit clean
ing. Ne nourrissez pas votre trouble obsessionnel-compulsif - Avez-vous commis l' *.pyc et *~'s déjà?
- ne
git update-index --skip-worktree local_settings.py
aide?
Vous devez vous connecter pour publier un commentaire.
Vous s'il vous plaît essayer avec la petite
x
au lieu de la capitale. Comme -git clean -x
De le git de la documentation:
-X
vous devez préfixe de chemin avec!
(comme suggéré par @forivall)œuvres. J'ai découvert cela quand j'ai googlé et a obtenu cette page.
!
dans ma coquille, mais cela a fonctionné.git clean -X -n -e \!.idea
J'ai mis les fichiers locaux qui tombent dans cette catégorie .git/info/exclure (par exemple, mon IDE fichiers de projet). Ils vous pouvez faire une propre comme ceci:
Où:
Vous pouvez créer un alias, par exemple:
L' --interactive signifie que vous avez à faire git myclean -f pour forcer la suppression.
Référence: http://git-scm.com/docs/git-ls-files (en plus de la première ligne de la valeur par défaut .git/info/exclure)
git config alias.myclean '!git ls-files --others --exclude-from=.git/info/exclude | xargs -I {} rm -v {}'
. Aussi un mot de l'avertissement à l'encontre de--interactive
: une fois, j'ai aliasrm
àrm --interactive
dans mon bashrc et eu tellement marre de la constante de la demande pour la suppression, après un moment juste ajouté-f
par défaut. Maintenant, je peux à peine de typerm
sans mon mémoire musculaire ajoutant-f
, même si j'ai depuis longtemps débarrassé de l'alias. Mon plan initial complètement retournée contre eux. Je suis condamnée à tout jamais, automatiquement effectuer un de plus dangereux version derm
.Si vous utilisez la version 2.6 de Python+ venez de définir la variable d'environnement,
PYTHONDONTWRITEBYTECODE
, àtrue
. Vous pouvez simplement ajouter la ligne suivante à quelque chose comme.profile
ou.bashrc
pour le désactiver entièrement votre profil:Ou, si vous voulez juste faire particulier d'un projet sur lequel vous travaillez, vous aurez besoin pour exécuter le dessus dans votre shell à chaque fois (ou dans l'une de vos virtualenv scripts d'initialisation si vous utilisez virtualenv et virtualenvwrapper), ou vous pouvez tout simplement passer le
-B
paramètre lors de l'appelpython
, par exempleSi vous avez commis la pyc et ainsi de suite déjà, procédez de la manière suivante:
Ajouter *.pyc, *~ et local_settings.py à la .gitignore.
Puis faire dans votre dépôt git:
alors:
maintenant, ils ne devraient pas vous déranger plus