Liste Git des fichiers intermédiaires

112

J'ai mis en scène beaucoup de fichiers en utilisant git add, maintenant je veux voir tous les fichiers que j'ai mis en scène, sans fichiers non suivis ni fichiers modifiés mais non stagés .

Comment je fais ça? Lors de l'utilisation, git diff --cachedje peux voir les changements de ce que je viens de mettre en scène. Alors j'ai essayé d'utiliser git status --cachedmais cela --cachedne fonctionne malheureusement pas git status.

Timon de Groot
la source
4
le simple fait de taper git statusvous donne une liste de fichiers intermédiaires, une liste de fichiers modifiés mais non gérés et une liste de fichiers non suivis.
houtanb
similaire à: stackoverflow.com/questions/1587846/…
rickfoosusa
@houtanb, git statusvous montre un diff. (Il ne vous montre pas tous les fichiers intermédiaires).
Pacerier le

Réponses:

199

La meilleure façon de procéder est d'exécuter la commande:

git diff --name-only --cached

Lorsque vous consultez le manuel, vous trouverez probablement les éléments suivants:

--name-only
    Show only names of changed files.

Et sur la partie exemple du manuel:

git diff --cached
    Changes between the index and your last commit.

Combinés ensemble, vous obtenez le changes between the index and your last commitetShow only names of changed files.

Mise à jour: --stagedest également disponible comme alias --cachedci-dessus dans les versions plus récentes de git.

Timon de Groot
la source
13
C'est vraiment utile car cela vous permet d'obtenir une liste de noms de fichiers que vous pouvez ensuite (dans mon cas) diriger vers un linter dans un hook pré-commit.
walrus
5
Si vous ajoutez des fichiers avec git add -N [files], cela inclut également ceux-ci, même s'ils ne sont pas encore mis en scène pour la validation. En tant que tel, ce n'est pas exactement ce que nous voulons pour un hook pré-commit.
Pistos
re " dernier commit "; Trompeur. Mieux vaut dire que git diff --cachedc'est court pourgit diff --cached head
Pacerier