Comment puis-je ignorer les .pyc
fichiers dans git?
Si je le mets, .gitignore
cela ne fonctionne pas. J'ai besoin qu'ils ne soient pas suivis et qu'ils ne soient pas vérifiés pour les validations.
Comment puis-je ignorer les .pyc
fichiers dans git?
Si je le mets, .gitignore
cela ne fonctionne pas. J'ai besoin qu'ils ne soient pas suivis et qu'ils ne soient pas vérifiés pour les validations.
Réponses:
Mettez-le dedans .gitignore
. Mais à partir de la gitignore(5)
page de manuel:
· 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 complet de l' *.pyc
entrée appropriée ou placez-le dans un .gitignore
fichier dans l'un des répertoires menant à la racine du référentiel (inclus).
Vous devez ajouter une ligne avec:
*.pyc
dans le .gitignore
fichier dans le dossier racine de l'arborescence de votre référentiel git juste après l'initialisation du référentiel.
Comme l'a dit ralphtheninja , si vous avez oublié de le faire au préalable, si vous ajoutez simplement la ligne au .gitignore
fichier, tous les .pyc
fichiers 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 juste cette commande d'une 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, recherchez tous les fichiers dont le nom se termine par l'extension
.pyc
et transmettez le nom de fichier à la commandegit rm -f
Après la *.pyc
suppression des fichiers de git en tant que fichiers suivis, validez cette modification dans le référentiel, puis vous pouvez enfin ajouter la *.pyc
ligne au .gitignore
fichier.
(adapté de http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Vous les avez probablement ajouté au référentiel avant de mettre *.pyc
en .gitignore
.
Supprimez-les d'abord du référentiel.
J'essaie d'utiliser la phrase d'un article précédent et je ne travaille pas de manière récursive, puis lis de l'aide et obtiens cette ligne:
find . -name "*.pyc" -exec git rm -f "{}" \;
pd est nécessaire pour ajouter * .pyc dans le fichier .gitignore pour maintenir git propre
echo "*.pyc" >> .gitignore
Prendre plaisir.
Si vous voulez ignorer les fichiers '.pyc' globalement (c'est-à-dire si vous ne voulez pas ajouter la ligne au fichier .gitignore dans chaque répertoire git), essayez ce qui suit:
$ cat ~/.gitconfig
[core]
excludesFile = ~/.gitignore
$ cat ~/.gitignore
**/*.pyc
[Référence]
https://git-scm.com/docs/gitignore
Les modèles qu'un utilisateur souhaite que Git ignore dans toutes les situations (par exemple, sauvegarde ou fichiers temporaires générés par l'éditeur de son choix) vont généralement dans un fichier spécifié par core.excludesFile dans le fichier ~ / .gitconfig de l'utilisateur.
Un "**" en tête suivi d'une barre oblique signifie que tous les répertoires correspondent. Par exemple, "** / foo" correspond au fichier ou au répertoire "foo" n'importe où, de la même manière que le motif "foo". "** / foo / bar" correspond au fichier ou au répertoire "bar" n'importe où qui se trouve directement sous le répertoire "foo".
Merci @Enrico pour la réponse.
Notez que si vous utilisez virtualenv, vous aurez plusieurs .pyc
fichiers supplémentaires dans le répertoire dans lequel vous vous trouvez actuellement, 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 ne voulez supprimer que les .pyc
fichiers de votre répertoire principal, faites simplement
find "*.pyc" -exec git rm -f "{}" \;
Cela supprimera juste le app.pyc
fichier du référentiel git.