2009-03-12 11 views
61

Quand vous faites:git, ne me montre pas * .pyc dans la liste des fichiers non-suivis!

>git status 

Il montre une grande liste de fichiers .pyc sous « fichiers » trassez. Je ne veux pas le montrer, car cela ajoute du bruit. En d'autres termes, comment faire pour que git ignore les fichiers .pyc tout le temps et pour tous les projets?

EDIT

Je ne demande pas un moyen de diffuser mes fichiers ignorés à d'autres personnes, je veux dire vraiment juste « pour tous les projets », ce qui signifie que je ne veux pas configurer chaque nouveau projet ignore les fichiers .pyc.

MISE À JOUR

Je dois ajouter que je travaille sur les fenêtres, et mon git est msysgit

modèles qu'un utilisateur veut git ignorer dans toutes les situations (par exemple, la sauvegarde ou temporaire fichiers générés par l'éditeur de choix de l'utilisateur) vont généralement dans un fichier spécifié par core.excludesfile dans ~/.gitconfig de l'utilisateur.

Est-ce que .gitconfig un fichier ou un dossier? Je n'ai pas une telle chose dans mon répertoire personnel (C:\users\<myusername>\)

MAJ2

Merci à tous pour les réponses,

Je résolu les problèmes à l'aide:

>git config --global core.excludesfile c:\git\ignore_files.txt 

et mettre * .pyc dans c:\git\ignore_files.txt

Répondre

38
git config --global core.excludesfile "c:\program files\whatever\global_ignore.txt" 

Ensuite, ajoutez

*.foo 

dans ce fichier.

+0

cela a fonctionné pour un projet, mais pas pour tous les projets – hasen

+1

Oups. Utilisez "git config --global core.excludesfile ..." pour le définir dans la configuration globale de Git. Cela devrait fonctionner pour tous les projets. – Bombe

+0

Grande réponse, a travaillé la première fois. Je vous remercie – dahui

3

Si je me souviens, il y a un moyen de se tup un global .gitignore ... Mais le problème avec cela est que vous ne pouvez pas le partager avec d'autres personnes (c'est-à-dire que d'autres personnes qui tirez votre code verront les fichiers .pyc). Donc, à mon humble avis, il est préférable de simplement l'ajouter au .gitignore pour chaque projet que vous démarrez. Je garde un stock .gitignore autour pour juste cette raison.

< flamebait>
Ou vous pourriez passer à bzr, qui vient avec une liste par défaut raisonnable des choses à ne pas tenir compte^_^
</flamebait>

+0

'bzr' est écrit en Python. Ce serait inattendu s'il ne pouvait pas gérer correctement les trucs spécifiques à Python. – jfs

+1

C'est vrai. Je ne connais pas toute l'étendue des paramètres par défaut, mais je sais qu'ils traitent également des choses comme Vim/Emacs swap/fichiers de sauvegarde, fichiers .o, etc –

+0

on pourrait penser qu'il serait judicieux pour bzr d'ignorer les fichiers .DS_Store un mac, mais ce n'est pas le cas, svn ad ad je me souviens. Je pense qu'il ne fait qu'ignorer les fichiers pyc par défaut car il est écrit en python et probablement aussi en emacs :) – Vasil

55

Mettre dans le fichier ~/.gitignore:

*.pyc 

Run:

git config --global core.excludesfile ~/.gitignore 

Je suis d'accord avec @David Wolever cette option devrait être utilisée avec prudence si jamais.

Le ~/.gitignore ("%HOME%\.gitignore" sur Windows) est juste une convention que vous pouvez utiliser n'importe quel nom de fichier que vous aimez, par exemple, "c:\docs\gitignore.txt".

+0

Meilleure réponse. Bref, au point –

+0

Pourquoi cela devrait-il être utilisé avec prudence? – LazerSharks

+0

@Gnuey: il s'agit d'un paramètre global appliqué à tous vos référentiels git. Utilisez-le uniquement pour les fichiers que vous voulez ignorer * "tout le temps et pour tous les projets" * – jfs

1

Pourriez-vous pas ajouter

* .pyc

à votre .gitignore?

+1

'.gitignore' pour un dépôt git ne fonctionne pas pour" tout le temps et pour tous les projets ". – jfs

+0

bien je suis sorta newb à git – hasen

84

Comme mentionné dans gitignore, git a 3 ignore files:

  • modèles qui devraient être sous contrôle de version et distribué à d'autres référentiels via clone (par exemple, les fichiers que tous les développeurs à ignorer) devrait entrer dans .gitignore file.

(qui prend soin de tous les temps: si l'on Clones votre pension, il obtiendra le fichier .gitignore)

  • modèles qui sont spécifiques à un référentiel particulier, mais qui n'ont pas besoin d'être partagés avec d'autres référentiels connexes (par exemple, les fichiers auxiliaires qui résident dans le référentiel mais qui sont spécifiques au flux de travail d'un utilisateur) devraient aller dans le fichier $ GIT_DIR/info/exclude.

(pas intéressant dans votre cas)

  • modèles qu'un utilisateur veut git ignorer dans toutes les situations (par exemple, la sauvegarde ou les fichiers temporaires générés par l'éditeur de l'utilisateur de choix) en général aller dans un fichier spécifié par core.excludesfile dans le user's ~/.gitconfig.

(prend soins de tous les projets, mais pas tous les temps car il n'est pas répliqué quand on Clones votre repo.)

« Tous pour tous les projets » devrait moyen par exemple une coque personnalisée pour créer de nouveaux projets git, avec un .gitignore personnalisé comme première partie de fichier du premier commit ...

+0

Réponse vraiment claire. +1 – Paul

+0

+1: Réponse complète. Sauf que vous devriez mentionner que 'core.excludesfile' pourrait être défini * par projet * ainsi que le paramètre global. – jfs

7

Une autre façon d'ignorer certains modèles de fichiers est: ajouter * .pyc à .git/info/excludes, c'est une manière beaucoup plus propre.

5

ajouter

*.pyc 

dans.fichier gitignore

et exécuter ce

git config --global core.excludesfile .gitignore 

qui a fonctionné pour moi