git status -> Afficher les fichiers qui seront ajoutés (mis en scène) dans les sous-répertoires

88

Disons que je démarre un référentiel git dans un dossier et que j'ai plusieurs sous-répertoires dedans.

J'ai plusieurs modèles de globbing .gitignorepour exclure des fichiers dans les sous-répertoires. Cependant, quand je fais git status avant de mettre en scène quoi que ce soit , git status affiche uniquement les noms des sous-dossiers qui seront ajoutés, sans être précis sur les fichiers de chaque sous-répertoire qui seront ajoutés (mis en scène) si je le fais git add ..

Fait intéressant cependant, il git statusest explicite sur les fichiers qui seront validés après la mise en scène des fichiers avec git add ..

Est-il possible de demander git statusà être explicite sur les fichiers pour les fichiers qui seraient mis en scène ?

Amelio Vazquez-Reina
la source

Réponses:

147

Essayer:

git status -u

ou la forme longue:

git status --untracked-files

qui affichera des fichiers individuels dans des répertoires non suivis.

Voici la description détaillée de l' -uoption de la page de manuel git-status :

-u[<mode>]
--untracked-files[=<mode>]

Afficher les fichiers non suivis.

Le paramètre mode est facultatif (par défaut all) et est utilisé pour spécifier la gestion des fichiers non suivis; lorsqu'il -un'est pas utilisé, la valeur par défaut est normal, c'est-à-dire afficher les fichiers et répertoires non suivis.

Les options possibles sont:

  • no - N'afficher aucun fichier non suivi
  • normal - Affiche les fichiers et répertoires non suivis
  • all - Affiche également les fichiers individuels dans les répertoires non suivis.

La valeur par défaut peut être modifiée à l'aide de la status.showUntrackedFilesvariable de configuration documentée dans git-config (1) .

Penghe Geng
la source
9

Vous pouvez simplement utiliser

git add --dry-run .

à la racine de votre référentiel qui vous donne une liste de tout fichier dans n'importe quel sous-répertoire qui serait ajouté en considérant .gitignore.

cweigel
la source
1

Que diriez-vous de placer un .gitignorefichier dans vos sous-répertoires au lieu de

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3
Adrian Cornish
la source
Je n'ai rien dans mon .gitignorequi ressemble à ce que vous avez publié (c'est-à-dire en ignorant les répertoires ou sous-répertoires avec des exceptions). Aussi, pourquoi cela importerait-il? À propos, git statusrenvoie la liste des fichiers qui seraient correctement validés après le transfert avec git add ..
Amelio Vazquez-Reina
1
Je sais que tu ne. Supprimez le répertoire de la racine .gitignoreet ajoutez-le .gitignoredans votre sous-répertoire - vous pouvez en avoir plusieurs. Ils nichent
Adrian Cornish
-1

utilisez la commande git git ls-files -o pour lister les fichiers non suivis

à la place -o utiliser -c --cached Afficher les fichiers mis en cache dans la sortie (par défaut)

-d --deleted Afficher les fichiers supprimés dans la sortie

-m --modified Afficher les fichiers modifiés dans la sortie

Pradeep Pandey
la source
Cette question est spécifique pour montrer quels fichiers seront ajoutés, tout en tenant compte de .gitignore. Votre réponse ignore .gitignore.
Jared