.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?
Al Riddoch
Réponses:
41
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 ifnotfrom 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' *.pycentrée appropriée ou placez-le dans un .gitignorefichier dans l'un des répertoires menant à la racine du référentiel (inclus).
Juste pour éviter que quiconque ne soit confus, l'interprétation par Ignacio de la page de manuel est erronée. Vous n'avez pas besoin de mettre le * .pyc dans le même répertoire, il suffit de le mettre dans un répertoire parent (ou grand-parent, etc.).
Godsmith
@ Godsmith: Corrigé.
Ignacio Vazquez-Abrams
241
Vous devez ajouter une ligne avec:
*.pyc
dans le .gitignorefichier 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 .gitignorefichier, tous les .pycfichiers 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 .pycet transmettez le nom de fichier à la commandegit rm -f
Après la *.pycsuppression des fichiers de git en tant que fichiers suivis, validez cette modification dans le référentiel, puis vous pouvez enfin ajouter la *.pycligne au .gitignorefichier.
Alternativement, juste pour supprimer les fichiers de git et de votre machine locale, vous pouvez simplement le faire à git rm --cached *.pycpartir du répertoire de niveau supérieur. Got it from here
Anupam
Je l'ai, mais une fois que vous avez commis les fichiers .pyc, ils sont de toute façon suivis par git, vous devez d'abord les supprimer et les valider au cas où vous les auriez dans le référentiel
Mahmoud Hboubati
84
Vous les avez probablement ajouté au référentiel avant de mettre *.pycen .gitignore.
Supprimez-les d'abord du référentiel.
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:
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".
Notez que si vous utilisez virtualenv, vous aurez plusieurs .pycfichiers supplémentaires dans le répertoire dans lequel vous vous trouvez actuellement, qui seront capturés par sa commande find.
Je suppose qu'il est inoffensif de supprimer tous les fichiers, mais si vous ne voulez supprimer que les .pycfichiers 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.
Réponses:
Mettez-le dedans
.gitignore
. Mais à partir de lagitignore(5)
page de manuel: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).la source
Vous devez ajouter une ligne avec:
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:
Cela signifie simplement:
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/ )
la source
git rm --cached *.pyc
partir du répertoire de niveau supérieur. Got it from hereVous les avez probablement ajouté au référentiel avant de mettre
*.pyc
en.gitignore
.Supprimez-les d'abord du référentiel.
la source
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:
pd est nécessaire pour ajouter * .pyc dans le fichier .gitignore pour maintenir git propre
Prendre plaisir.
la source
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:
[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".
la source
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:
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 simplementfind "*.pyc" -exec git rm -f "{}" \;
Cela supprimera juste le
app.pyc
fichier du référentiel git.la source