80 votes

git ls-files: comment identifier les nouveaux fichiers (ajoutés, non validés)?

Après j'ai appelé git add <file> la commande git status me montrer quelque chose comme:

...
new file:    <file>

De toute façon je ne peux pas le gérer pour obtenir les mêmes informations à l'aide d' ls-files, c' (ls-files -tc dans ce cas) va me montrer:

H <commited file>
H <other commited file>
H <file>

Il n'y a aucune ligne de commande de l'interrupteur d'exister pour les nouveaux fichiers. Le fichier est considéré comme mis en cache, ce qui est ok, mais comment puis-je savoir qu'il n'est pas engagée en ce moment?

Est-ce possible avec ls-files ou d'une même commande (où je n'ai pas à analyser un lot de production comme dans le cas de l' git status)?

104voto

Andrew Aylett Points 16469

Vous souhaitez utiliser git diff --cached. Avec --name-only il va lister tous les fichiers que vous avez modifiés dans l'indice par rapport à la TÊTE. Avec --name-status vous pouvez obtenir le statut de symbole de trop, avec --diff-filter vous pouvez spécifier un ensemble de fichiers que vous souhaitez afficher ("A" pour les nouveaux fichiers ajoutés, par exemple). Utiliser -M pour allumer déplacer de détection et d' -C pour la détection de copie si vous le souhaitez.

Pour les plus strictes de la lecture de ce que vous avez écrit, git diff --cached --name-only --diff-filter=A liste de tous les fichiers que vous avez ajoutés depuis la TÊTE qui n'existent pas dans la TÊTE.

54voto

MikeSep Points 3013

Précision: C’est un moyen de montrer les fichiers que j’ai l’ intention d’ajouter. Ce n’est pas ce que recherchait le PO, mais je vais laisser ce message au cas où il serait utile à d’autres.

Cela semble ne montrer que les fichiers que j'ai ajoutés [à ma copie de travail, pas l'index] mais que je ne compare pas avec mes modèles d'ignorance standard:

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

Sans --exclude-standard , il affiche également les fichiers qui sont ignorés lors de l'exécution de git status .

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