web-dev-qa-db-fra.com

Supprimer les fichiers .pyc du référentiel distant Git

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?

47
ePascoal
  1. Supprimer.pyc fichiers utilisant git rm *.pyc. Si cela ne fonctionne pas, utilisez git rm -f *.pyc
  2. Validergit commit -a -m 'all pyc files removed'
  3. Pushgit Push
  4. Dans les commits futurs, vous pouvez ignorer .pyc fichiers en créant un .gitignore fichier
112
Falcoa

Non, 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).

16
smassey
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 ...

12
Dimitriy Kutnyakov

Thie a travaillé pour moi,

find . -name '*.pyc' | xargs -n 1 git rm --cached
7
Adel

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
4
Angel Alvarado

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)

3
Rao

Un moyen rapide avec PyDev pour Eclipse.

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:

  • clic droit + équipe/commit

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 :)

1
Aton Lerin

Parce que dans Bitbucket par défaut, il n'y a pas de fichier .gitignore dans le référentiel, vous pouvez donc faire:

  1. vous pouvez créer un .gitignore local (ne doit pas être poussé) et ajouter * .pyc comme ligne;
  2. vous pouvez copier le .gitignore dans le référentiel Github et ajouter * .pyc comme ligne dans ce fichier! Vous pouvez le pousser ou le garder dans votre dépôt local!
1
慕冬亮

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.

0
3white

Une doublure pour le plaisir:

git status | grep pyc | sed -e 's/ new file: //g' | xargs -I {} git rm --cached {}

0
Monkpit