130 votes

Git stash deux fois

Je devais rapidement changer de branche git, donc j'ai exécuté git stash mais j'ai dû le relancer car un de mes fichiers devait être modifié.

Donc j'ai couru git stash deux fois, et je suis prêt à retourner à l'édition de mes fichiers. J'ai exécuté git stash apply mais je ne suis pas convaincu que tous les fichiers que j'avais cachés ont été décachetés. Y a-t-il quelque chose que je puisse faire ? Un moyen de vérifier ?

Quand je cours git stash show Je viens de voir le dernier de mes deux stocks de git.

Est-il possible d'afficher tous les git stashes ?

224voto

Felix Kling Points 247451

Vous pouvez obtenir une liste de toutes les cachettes avec

git stash list

qui vous montrera quelque chose comme

stash@{0}: WIP on dev: 1f6f8bb Commit message A
stash@{1}: WIP on master: 50cf63b Commit message B

Si vous avez fait deux cachettes, alors il suffit d'appeler git stash pop deux fois. Contrairement à git stash apply , pop s'applique et supprime la dernière cachette.

Vous pouvez également faire référence à une cachette spécifique, par ex.

git stash show stash@{1}

ou

git stash apply stash@{1}

9voto

Waaheeda Points 29

Je suis tombé sur cette situation, j'ai fait deux cachettes et git stash pop Je viens de déstocker ma dernière réserve. Alors j'ai fait

git stash list

git stash pop stash@{1}

Cela a débloqué ma première cachette et j'ai pu revoir tous mes changements !

4voto

Cameron McKenzie Points 199

Vous avez posé plusieurs questions différentes dans le poste, et d'autres répondants ont donné de bonnes réponses à certaines d'entre elles. Celle qui semble la plus importante mais à laquelle il n'a pas été répondu est la suivante :

>>Je ne suis pas convaincu que tous les fichiers que j'avais cachés aient été déballés. Y a-t-il quelque chose que je puisse faire ? Un moyen de vérifier ?

Comparez votre réserve à l'arbre local

Je pense que ce que vous voulez faire, c'est comparer la cachette à votre local. arbre de travail . Vous pouvez mettre le commutateur -p sur la commande stash et vous êtes bon :

git stash show -p

Si vous en cherchez un en particulier, utilisez son nom. nom de la cachette git ou id de la liste de la cachette :

git stash show -p stash@{3}

Peut-être utiliser le différentiel ?

Si vous êtes vraiment intéressé à pousser vos compétences en matière de git, vous pouvez toujours opter pour un diff. Pour voir la différence entre ce qui est dans la cachette et ce qui est enregistré dans le HEAD de la branche master, on peut utiliser le diff suivant :

git diff stash@ master

Une autre commande très pratique pour vous montrer les changements d'éléments dans l'historique de la cachette est --stat :

git stash list --stat

Mais je pense que la réponse simple est la bonne réponse. Il suffit d'utiliser l'interrupteur -p et vous verrez probablement si l'option cachette que vous avez mise en rayon a été remis en place.

git stash show -p stash@{3}

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