Comment afficher les fichiers non suivis qui n'existent pas dans .gitignore


167

J'utilise git status -upour afficher les fichiers non suivis. Et sur le terminal, je vois beaucoup de fichiers non suivis dont j'ai besoin, comme des tests unitaires, de la documentation personnelle, etc. Je les ai mis .gitignore, mais il semble que cela les git statusmontre toujours.

Comment afficher uniquement les fichiers non suivis qui n'existent pas dans .gitignore.


11
si les fichiers non suivis sont affichés dans l'état git, ils ne sont pas correctement ignorés par .gitignore. pouvez-vous montrer la structure des répertoires de travail et le contenu .gitignore?
max

7
D'accord avec @max, cela devrait fonctionner. Voici une supposition sauvage: si vous êtes sous Windows, sachez que .gitignore, contrairement à Windows, est sensible à la casse. Donc, si vous ignorez * .txt et qu'il y a un Test.TXT sur le disque, il ne sera pas ignoré.
Joe White

Réponses:


269

Vous pouvez explicitement lister ce qui est suivi et non suivi comme suit pour voir si Git voit et respecte votre .gitignore. Si vous publiez votre .gitignorecontenu, la git statussortie, et / dirou lsnous pouvons mieux vous aider.

Répertorier les fichiers ignorés

$ git ls-files . --ignored --exclude-standard --others

Répertorier les fichiers non suivis

$ git ls-files . --exclude-standard --others

3
Si vous voyez des fichiers que vous ne pensiez pas être dans votre .gitignore, il se peut qu'il y en ait un autre qui se cache dans votre projet. Furetez-le avec `find. -nom .gitignore`.
jpadvo

@ matthew-mccullough Excellente réponse! Je vais ajouter quelques alias pour ces remerciements! @jpadvo Pouvez-vous donner un exemple d'utilisation de la findméthode?
lacostenycoder

Si vous voulez une courte liste, disons que vous ignorez node_modules et que vous ne voulez pas voir l'arborescence entière, ajoutez de --directorysorte que seul le dossier de niveau supérieur ignoré sera affiché (c'est plus proche de l'état de git).
Henry Blyth

2
Pour être clair, git ls-files --others --exclude-standard --ignoredrépertorie les fichiers git ls-files --others --exclude-standardignorés non suivis et ceux non ignorés non suivis. Plus d'informations ici .
x-yuri

1
Notez que par défaut, git ls-files --othersne répertorie pas les répertoires vides. Pour lister les répertoires vides, ajoutez l' --directoryoption. Cela n'est pas évident à partir de la page de manuel mais peut être déduit. --directory: Si un répertoire entier est classé comme "autre", affichez simplement son nom (avec une barre oblique à la fin) et non son contenu entier. . --no-empty-directory: Ne répertorie pas les répertoires vides. N'a aucun effet sans --directory.
catanman


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.