comment puis-je ignorer le fichier .pyc dans git . Si je mets dans .gitignore ne fonctionne pas: j'ai besoin qu'ils soient non suivis et ne le vérifient pas pour commit.
Mettez-le dans .gitignore
. Mais à partir de la page de manuel gitignore(5)
:
· If the pattern does not contain a slash /, git treats it as a Shell glob pattern and checks for a match against the pathname relative to the location of the .gitignore file (relative to the toplevel of the work tree if not from a .gitignore file). · Otherwise, git treats the pattern as a Shell glob suitable for consumption by fnmatch(3) with the FNM_PATHNAME flag: wildcards in the pattern will not match a / in the pathname. For example, "Documentation/*.html" matches "Documentation/git.html" but not "Documentation/ppc/ppc.html" or "tools/perf/Documentation/perf.html".
Donc, spécifiez le chemin d'accès complet à l'entrée *.pyc
appropriée ou placez-le dans un fichier .gitignore
dans l'un des répertoires à partir de la racine du référentiel (inclusif).
Vous devriez ajouter une ligne avec:
*.pyc
dans le fichier .gitignore
dans le dossier racine de votre arborescence de référentiel git juste après l’initialisation du référentiel.
Comme ralphtheninja a dit, si vous avez oublié de le faire auparavant, si vous ajoutez simplement la ligne au fichier .gitignore
, tous les fichiers .pyc
précédemment validés seront toujours suivis; vous devrez donc les supprimer du référentiel.
Si vous êtes sur un système Linux (ou "parents & fils" comme un MacOSX), vous pouvez le faire rapidement avec cette commande d'une seule ligne que vous devez exécuter à partir de la racine du référentiel:
find . -name "*.pyc" -exec git rm -f "{}" \;
Cela signifie simplement:
à partir du répertoire dans lequel je suis actuellement, trouvez tous les fichiers dont le fichier name se termine par l'extension
.pyc
et passe le nom du fichier à la commandegit rm -f
Après la suppression des fichiers *.pyc
de git en tant que fichiers suivis, validez cette modification dans le référentiel, puis vous pourrez enfin ajouter la ligne *.pyc
au fichier .gitignore
.
(adapté de http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Vous les avez probablement ajoutées au référentiel avant de mettre *.pyc
dans .gitignore
.
Commencez par les supprimer du référentiel.
Merci @Enrico pour la réponse.
Notez que si vous utilisez virtualenv, vous aurez plusieurs autres fichiers .pyc
dans le répertoire dans lequel vous vous trouvez, qui seront capturés par sa commande find.
Par exemple:
./app.pyc
./lib/python2.7/_weakrefset.pyc
./lib/python2.7/abc.pyc
./lib/python2.7/codecs.pyc
./lib/python2.7/copy_reg.pyc
./lib/python2.7/site-packages/alembic/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/__init__.pyc
./lib/python2.7/site-packages/alembic/autogenerate/api.pyc
Je suppose qu'il est inoffensif de supprimer tous les fichiers, mais si vous souhaitez uniquement supprimer les fichiers .pyc
de votre répertoire principal, faites-le.
find "*.pyc" -exec git rm -f "{}" \;
Cela ne supprimera que le fichier app.pyc
du référentiel git.