2017-09-26 3 views
0

J'ai construit une application web sur une machine my win7 locale. Je l'ai fait avec pycharm et utilisé git comme contrôle de version. Je suis un novice git total.Garder `__pycache__` hors de mon dépôt lors de l'ajout/validation de pythonanywhere

J'ai mis le dépôt sur github pour que je puisse mettre en place la webapp sur mon serveur pythonanywhere.

Du côté de pythonanywhere, j'ai fait quelques petites modifications à divers fichiers. Je voulais renvoyer ces modifications au référentiel.

(udemy) 10:44 ~/keystone (master)$ git commit -m "got it running on pythonanywhere staging" 
On branch master 
Your branch is up-to-date with 'origin/master'. 
Changes not staged for commit: 
     modified: keystone/settings/base.py 
     modified: keystone/settings/local_postgres.py 
     modified: keystone/settings/staging_straits.py 
     deleted: p0150_1.pdf 
Untracked files: 
     crapboard/__pycache__/ 
     crapboard/migrations/__pycache__/ 
     crapboard/templatetags/__pycache__/ 
     keystone/__pycache__/ 
     keystone/settings/__pycache__/ 
no changes added to commit 

Il y avait trois fichiers modifiés et une suppression que je voulais valider dans le référentiel.

donc je l'ai fait

(udemy) 14:03 ~/keystone (master)$ git add --all 
(udemy) 14:03 ~/keystone (master)$ git commit -m "staged to pythonanywhere" 
[master ac6bb7e] staged to pythonanywhere 
27 files changed, 23 insertions(+), 115 deletions(-) 
create mode 100644 crapboard/__pycache__/__init__.cpython-36.pyc 
create mode 100644 crapboard/__pycache__/admin.cpython-36.pyc 
create mode 100644 crapboard/__pycache__/apps.cpython-36.pyc 
create mode 100644 crapboard/__pycache__/forms.cpython-36.pyc 
create mode 100644 crapboard/__pycache__/models.cpython-36.pyc 
create mode 100644 crapboard/__pycache__/pdf_views.cpython-36.pyc 
create mode 100644 crapboard/__pycache__/urls.cpython-36.pyc 
create mode 100644 crapboard/__pycache__/views.cpython-36.pyc 
create mode 100644 crapboard/migrations/__pycache__/0001_initial.cpython-36.pyc 
create mode 100644 crapboard/migrations/__pycache__/0001_squashed_0005_auto_20170921_2154.cpython-36.pyc 
create mode 100644 crapboard/migrations/__pycache__/0002_auto_20170909_1137.cpython-36.pyc 
create mode 100644 crapboard/migrations/__pycache__/0003_auto_20170912_2029.cpython-36.pyc 
create mode 100644 crapboard/migrations/__pycache__/0004_problem_author.cpython-36.pyc 
create mode 100644 crapboard/migrations/__pycache__/0005_auto_20170921_2154.cpython-36.pyc 
create mode 100644 crapboard/migrations/__pycache__/__init__.cpython-36.pyc 
create mode 100644 crapboard/templatetags/__pycache__/__init__.cpython-36.pyc 
create mode 100644 crapboard/templatetags/__pycache__/crapboard_filters.cpython-36.pyc 
create mode 100644 keystone/__pycache__/__init__.cpython-36.pyc 
create mode 100644 keystone/__pycache__/urls.cpython-36.pyc 
create mode 100644 keystone/settings/__pycache__/__init__.cpython-36.pyc 
create mode 100644 keystone/settings/__pycache__/base.cpython-36.pyc 
create mode 100644 keystone/settings/__pycache__/settings_secret.cpython-36.pyc 
create mode 100644 keystone/settings/__pycache__/staging_straits.cpython-36.pyc 
rewrite keystone/settings/staging_straits.py (65%) 
delete mode 100644 p0150_1.pdf 

Argh. Il a également commis tous ces répertoires __pycache__.

Je suppose que cela est arrivé parce que j'aurais dû faire une sorte de fichier global/general .gitignore sur mon serveur pythonanywhere?

Autant de questions:

1) Comment puis-je me débarrasser de cette pycache choses de mon dépôt en permanence 2) comment empêcher mon serveur pythonanywhere d'essayer d'ajouter ce genre de choses à mon dépôt à l'avenir - Je n'ai pas ce problème avec pycharm/machine locale - il ignore ces fichiers.

+1

Quelques indices: https://stackoverflow.com/questions/1139762/ignore-files-that-have-already-been-committed-to-a-git-repository (Vous avez probablement déjà un fichier .gitignore quelque part dans votre répertoire) – doctorlove

+0

Sur la partie (1): notez que vous ne pouvez * changer * aucun commit existant, mais vous pouvez arrêter de les utiliser, et éventuellement, s'il n'y a aucun moyen de les trouver, ils expirent. Si vous n'avez * envoyé * ce nouveau commit nulle part ailleurs (pour que vous l'ayez seulement), vous pouvez arrêter d'utiliser ce commit (en utilisant 'git commit --amend' pour le mettre de côté, ou' git reset' pour le cacher loin de sorte que même vous ne pouvez pas le voir). Vous n'aurez alors '__pycache__' dans aucun de vos commit (visible), donc vous n'enverrez pas non plus de commit qui l'ont dans un autre dépôt. – torek

+0

Mettez-le dans .gitignore –

Répondre

1
  1. vous pouvez faire un git rm pour supprimer le dossier, puis valider et pousser cela. ou si vous vous sentez super aventureux et que personne d'autre n'utilise votre repo, vous pouvez faire un commit --fixup puis un rebase --interactive pour tout nettoyer. Voir here pour plus de détails.
  2. ajouter __pyacache__ à ~/.gitignore. Ou mieux encore simplement vérifier un fichier .gitignore pour votre repo.