web-dev-qa-db-fra.com

Comment faire pour que l'état git affiche uniquement les fichiers intermédiaires

Je voudrais obtenir une liste des seuls noms de fichiers mis en scène. Je ne trouve pas le drapeau équivalent pour --name-only pour le git status commande. Qu'est-ce qu'une bonne alternative?

La liste des fichiers sera redirigée vers php -l (Vérificateur de syntaxe PHP lint).

Solution: la commande complète

git diff --name-only --cached | xargs -l php -l
71
Ward Bekker

Utilisation git diff --name-only (avec --cached pour obtenir les fichiers intermédiaires)

112
Ben Jackson

La réponse acceptée ne vous permettra pas de savoir quel type de changements y a-t-il eu.

Oui, si vous n'êtes pas un vérificateur de syntaxe mais une personne ordinaire avec un référentiel plein de fichiers non mis en scène et que vous voulez toujours savoir ce qu'il adviendra des fichiers mis en scène - il existe une autre commande:

git status --short | grep '^[MARCD]'

ce qui conduit à quelque chose comme:

M  dir/modified_file
A  dir/new_file
R  dir/renamed -> dir/renamed_to
C  dir/copied_file
D  dir/deleted_file

De toute évidence, ces fichiers ont été mis en scène, et après git commit:
deleted_file sera supprimé,
new_file sera ajouté,
renamed_file deviendra un renamed_to.

Voici une explication de la sortie au format court: https://git-scm.com/docs/git-status#_short_format

5
coffman21