131 votes

git status -> Montrer les fichiers qui seront ajoutés (staged) dans les sous-répertoires

Disons que je démarre un dépôt git dans un dossier, et que j'ai plusieurs sous-répertoires dans celui-ci.

J'ai plusieurs modèles de globbing .gitignore pour exclure les fichiers des sous-répertoires. Cependant, lorsque je fais git status avant de mettre en scène quoi que ce soit Dans le cas où j'utilise la méthode d'ajout de fichiers, git status n'indique que les noms des sous-dossiers qui seront ajoutés, sans préciser quels fichiers de chaque sous-répertoire seront ajoutés (mis à disposition) si je fais git add . .

Il est intéressant de noter que, git status est explicite sur les fichiers qui seront engagé après avoir mis en scène des fichiers avec git add . .

Y a-t-il un moyen de demander git status d'être explicite sur les fichiers pour les fichiers qui seraient mis en scène ?

212voto

xiaobai Points 2004

Essayez :

git status -u

ou la forme longue :

git status --untracked-files

qui montrera les fichiers individuels dans les répertoires non suivis.

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

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

Afficher les fichiers non suivis.

Le paramètre mode est facultatif (la valeur par défaut est all ), et est utilisé pour spécifier le traitement des fichiers non suivis ; lorsque -u n'est pas utilisé, la valeur par défaut est normal c'est-à-dire montrer les fichiers et répertoires non suivis.

Les options possibles sont les suivantes :

  • no - Ne montrer aucun fichier non suivi
  • normal - Affiche les fichiers et les répertoires non tracés
  • all - Affiche également les fichiers individuels dans les répertoires non suivis.

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

18voto

chruesel Points 719

Vous pouvez simplement utiliser

git add --dry-run .

dans la racine de votre référentiel, ce qui vous donne une liste de tous les fichiers de tous les sous-répertoires qui seraient ajoutés lors de l'examen de l'option .gitignore .

7voto

jthill Points 10384

git ls-files -o --exclude-standard

Chaque chemin dans votre arbre de travail qui n'est pas mis en scène ( -o ) et ne seront pas ignorés par git add ( --exclude-standard ).

0voto

Adrian Cornish Points 8651

Que diriez-vous de mettre un .gitignore dans vos sous-répertoires en suivant la ligne suivante

# Ignore everything in this directory
*
# Except these file
!.gitignore
!file1
!file2
!file3

0voto

Maifee Ul Asad Points 1912

Il y a de fortes chances que ce soit dû à la fin de la ligne. Solution :

git config --global core.autocrlf true

Mais ne vous contentez pas de lancer cette commande, validez-la avant de l'exécuter. Utilisez git diff Si la plupart des fichiers ne présentent aucune différence, cela est dû à la fin de ligne. Utilisez-le bien.

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