Par accident, j'ai poussé les fichiers .pyc vers le référentiel maître. Maintenant, je veux les supprimer mais je ne peux pas le faire. Existe-t-il un moyen de les supprimer directement du site Bitbucket?
.pyc
fichiers utilisant git rm *.pyc
. Si cela ne fonctionne pas, utilisez git rm -f *.pyc
git commit -a -m 'all pyc files removed'
git Push
.pyc
fichiers en créant un .gitignore
fichierNon, vous ne pouvez pas les supprimer directement de l'interface BitBucket mais vous pouvez les supprimer dans votre caisse locale et find ./ -type f -name '*.pyc' -exec git rm {} \;
(ou simplement git rm chaque fichier pyc un par un). Ensuite, validez/poussez vos modifications.
Enfin, pour éviter de refaire la même erreur, vous pouvez créer un fichier à la racine de votre dépôt et le nommer '.gitignore' avec le contenu:
*.pyc
*~
*.swp
* ~ et ~ .swp sont d'autres types de fichiers souvent oubliés qui sont souvent poussés accidentellement. Voir le doc github sur gitignore https://help.github.com/articles/ignoring-files (et leur dépôt de fichiers .gitignore pour quelques valeurs par défaut de Nice).
git rm *.pyc --cached
git commmit -a -m'remove pyc from index'
git Push
PS: Je vois la date de la question, mais cette solution semble meilleure, à mon humble avis. Peut-être que ça va aider quelqu'un ...
Thie a travaillé pour moi,
find . -name '*.pyc' | xargs -n 1 git rm --cached
J'ai utilisé la solution de simeg mais je voulais également supprimer des tonnes de fichiers * .pyc ajoutés par erreur à une branche. J'ai utilisé awk pour les supprimer du cache de manière récursive.
git status | awk '{if($1=="modified:" && $2!=".gitignore") ; system("git rm --cached "$2)}'
Ensuite, j'ai supprimé les fichiers de mon local
find . -name *.pyc -delete
Pour supprimer tous les .pyc
les fichiers utilisent git rm -rf *.pyc
Ajoutez ensuite le *.py[co]
à votre fichier . gitignore. (Cela empêchera les fichiers .pyc et .pyo d'être validés lors des futures validations)
Accédez à l'explorateur de packages PyDev de votre projet et procédez comme suit:
clic droit + Pydev/Supprimer le fichier * .pyc * .pyo et * $ py.class
une fenêtre apparaîtra vous indiquant le nombre de fichiers supprimés.
Facultatif: validez votre modification dans l'équipe/le serveur:
Dans la fenêtre de validation, vous ne devriez voir aucun fichier .pyc à ajouter car nous les avons supprimés. De plus, si vous avez validé de tels fichiers avant, vous devriez pouvoir valider leur "suppression" maintenant.
===> Votre référentiel local et serveur sont désormais exempts de * .pyc * .pyo et * $ py.class File :)
Parce que dans Bitbucket par défaut, il n'y a pas de fichier .gitignore dans le référentiel, vous pouvez donc faire:
une autre doublure pour le plaisir de supprimer tous les fichiers pyc.
trouver . -name '* .pyc' -exec git rm {} \;
n'oubliez pas de suivre les étapes des autres réponses pour valider et ajouter gitignore.
Une doublure pour le plaisir:
git status | grep pyc | sed -e 's/ new file: //g' | xargs -I {} git rm --cached {}