373 votes

Expliquer quelle règle gitignore ignore mon fichier

Existe-t-il un moyen de savoir pourquoi un fichier est ignoré par git (c'est-à-dire quelle règle dans un fichier .gitignore fait que le fichier est ignoré) ?

Imaginez que j'ai ceci (ou un scénario beaucoup plus complexe, avec des centaines de dossiers et des dizaines de .gitignore des fichiers :

/
-.gitignore
-folder/
    -.gitignore
    -subfolder/
              -.gitignore
              -file.txt

Si je cours git add folder/subfolder/file.txt git peut se plaindre qu'elle est ignorée :

The following paths are ignored by one of your .gitignore files:
folder/subfolder/file.txt
Use -f if you really want to add them.

Y a-t-il un moyen de savoir lequel de tous les possibles .gitignore avoir une règle pour ignorer ce fichier, et aussi afficher la règle ? Par exemple :

The following paths are ignored by your folder/.gitignore file (line 12: *.txt)
folder/subfolder/file.txt
Use -f if you really want to add them.

Ou juste :

$ git why-is-ignored folder/subfolder/file.txt
folder/.gitignore:12:*.txt

5 votes

Nota: git check-ignore aura bientôt (git1.8.5/1.9) un module --no-index option. Voir ma réponse ci-dessous

0 votes

Nota: GIT_TRACE_EXCLUDE=1 git status sera bientôt un moyen supplémentaire de déboguer .gitignore règles. Voir ma réponse éditée ci-dessous

0 votes

Article de blog pertinent : danielcompton.net/2016/04/21/ .

2voto

rekordboy Points 46

Pour ajouter à la réponse principale de l'utilisation git check-ignore -v filename (merci BTW) J'ai découvert que mon fichier .gitignore bloquait tout parce qu'il y avait un saut de ligne après un caractère de remplacement, donc j'ai.. :

* .sublime-project

à titre d'exemple. J'ai juste enlevé le saut de ligne, et voilà ! C'était réparé.

0voto

Mark0978 Points 3328

Le contenu des fichiers .gitignore serait utile ici. Mais il n'y a pas de commande git pour vous dire pourquoi quelque chose est ignoré.

Prograide.com

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.

Powered by:

X