Dans git stash page de manuel, vous pouvez lire que (dans la section "Discussion", juste après les "Options" de la description):
Une cachette est représenté comme un commit dont l'arborescence des dossiers de l'état de l'
répertoire de travail, et son premier parent est le commettre à la TÊTE lors de la
cachette a été créé.
Vous pouvez donc traiter stash (par exemple, stash@{0}
est le premier / premier cachette) comme une fusion s'engager, et l'utilisation:
$ git diff stash@{0}^1 stash@{0} -- <filename>
Explication: stash@{0}^1
raccourci signifie premier parent de la cachette, qui, comme indiqué dans l'explication ci-dessus est s'engager à laquelle des modifications ont été caché loin. Nous utilisons cette forme de "git diff" (avec deux commits), car stash@{0}
/ refs/stash
est une fusion de commettre, et nous devons dire à git qui parent nous voulons diff contre. Plus cryptique:
$ git diff stash@{0}^! -- <filename>
il devrait également travailler (voir git rev-parse page de manuel pour une explication de la rev^!
de la syntaxe, dans "Spécification des plages" de la section).
De même, vous pouvez utiliser git checkout pour vérifier un fichier unique de la cachette:
$ git checkout stash@{0} -- <filename>
ou l'enregistrer sous un autre nom de fichier:
$ git show stash@{0}:<full filename> > <newfile>
(notez qu'ici <nom de fichier> est le chemin d'accès complet d'un fichier par rapport au sommet de répertoire d'un projet (pense: par rapport à l' stash@{0}
)).