Comment puis-je ignorer .pyc
dans git ?
Si je le mets dans .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 commits.
Comment puis-je ignorer .pyc
dans git ?
Si je le mets dans .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 commits.
Vous devriez ajouter une ligne avec :
*.pyc
à la .gitignore
dans le dossier Root de l'arborescence de votre dépôt git juste après l'initialisation du dépôt.
En ralphtheninja Si vous avez oublié de le faire au préalable, il vous suffit d'ajouter la ligne à la page d'accueil. .gitignore
tous les engagements antérieurs .pyc
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 rapidement le faire avec cette seule ligne de commande que vous devez exécuter à partir de la racine du dépôt :
find . -name "*.pyc" -exec git rm -f "{}" \;
Cela signifie simplement :
à partir du répertoire dans lequel je me trouve actuellement, fi se termine par l'extension
.pyc
et transmettre le nom du fichier à la commandegit rm -f
Après *.pyc
de git en tant que fichiers suivis, valider ce changement dans le dépôt, et enfin ajouter l'option *.pyc
à la ligne .gitignore
fichier.
(adapté de http://yuji.wordpress.com/2010/10/29/git-remove-all-pyc/ )
Mettez-le dans .gitignore
. Mais depuis le 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".
Il faut donc soit spécifier le chemin d'accès complet au fichier *.pyc
ou le placer dans un .gitignore
dans n'importe quel répertoire à partir de la racine du référentiel (inclusivement).
Pour éviter que d'autres ne s'y perdent, l'interprétation de la page de manuel par Ignacio est erronée. Il n'est pas nécessaire de placer le *.pyc dans le même répertoire, il suffit de le placer dans un répertoire parent (ou grand-parent, etc.).
J'essaie d'utiliser la phrase d'un message précédent et de ne pas travailler de manière récursive, puis je lis de l'aide et j'obtiens cette ligne :
find . -name "*.pyc" -exec git rm -f "{}" \;
p.d. il est nécessaire d'ajouter *.pyc dans le fichier .gitignore pour maintenir git propre
echo "*.pyc" >> .gitignore
Appréciez.
Si vous souhaitez ignorer les fichiers '.pyc' globalement (c'est-à-dire si vous ne souhaitez 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 motifs qu'un utilisateur souhaite que Git ignore dans toutes les situations (par exemple, les fichiers de sauvegarde ou temporaires générés par l'éditeur choisi par l'utilisateur) vont généralement dans un fichier spécifié par core.excludesFile dans le fichier ~/.gitconfig de l'utilisateur.
Un "**" initial suivi d'une barre oblique signifie qu'il y a correspondance dans tous les répertoires. 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" situé directement sous le répertoire "foo".
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
4 votes
.gitignore devrait fonctionner. Pouvez-vous fournir une copie des lignes que vous avez placées dans .gitignore pour tenter de résoudre ce problème ?