Comment puis-je ajouter quelque chose à l'.gitignore pour que le match ne soit pas récursif?
Comment ajouter quelque chose au .gitignore
pour que la correspondance ne soit pas récursive?
Par exemple, je souhaite ignorer le répertoire foo
et le fichier bar.txt
dans le répertoire courant, mais pas ceux qui existent dans les sous-répertoires.
J'ai essayé ceci pour mon fichier .gitignore
:
foo/
bar.txt
Mais malheureusement, git applique cela récursivement, de sorte que otherdir/bar.txt
et otherdir/foo/
sont également ignorés, ce qui n'est pas ce que je veux.
(y a-t-il une commande dans git qui me montre tous les fichiers ignorés, et la référence le fichier .gitignore
responsable de l'ignorance du fichier? Cela serait utile pour le débogage.)
2 réponses
La solution consiste à placer une barre oblique sur les entrées .gitignore
:
/foo/
/bar.txt
(je pensais avoir essayé ceci avant de poster sur StackOverflow, mais clairement Je ne l'avais pas essayé correctement, car cela fonctionne parfaitement.)
De la page de manuel gitignore:
Un préfixe optionnel ! ce qui annule le motif; tout fichier correspondant exclu par un motif précédent sera à nouveau inclus. Si un modèle nié correspond, cela remplacera les sources de modèles de priorité inférieure.
, Donc !*
la première ligne dans votre .gitignore effacera tous les modèles précédents.