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.

Justjoe
la source
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
Matthew McCullough
la source
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
-3
git update-index --no-assume-unchanged <file>
Brooks Folk
la source
11
Veuillez ajouter une explication pour votre réponse
M Khalid Junaid
-6

Utilisation:

git config status.showuntrackedfiles no 
Ohad Sadan
la source
Sur la version actuelle de git, j'obtiens error: Invalid untracked files mode 'yes'quand j'essaye de l'utiliser.
Mike
1
Les valeurs possibles sont no, normal, all. C'est expliqué ici: git-scm.com/docs/git-config
Muhammad Gelbana
4
Cela ne répond pas à la question.
lacostenycoder