655 votes

Comment supprimer une cachette créé avec git stash créer ?

Git stash semble faire beaucoup de ce que je veux, sauf que c'est un peu difficile de script, comme si vous n'avez pas de changements, git stash; git stash pop va faire quelque chose de différent que si vous avez des changements dans votre référentiel.

Il semble que l' git stash create est la réponse à ce problème, et tout fonctionne, sauf pour une chose... je ne peut pas se débarrasser de la création cachette. Est-il possible de se débarrasser de la cachette?

Pour le rendre 100% clair ce que je fais:

Créer la cachette:

~/tmp/a(master) $ git stash create 
60629375d0eb12348f9d31933dd348ad0f038435
~/tmp/a(master) $ git st
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   b
#
~/tmp/a(master) $ git reset --hard
HEAD is now at 555d572 log message

Utiliser la cachette:

~/tmp/a(master) $ git apply 60629375d0eb12348f9d31933dd348ad0f038435
fatal: can't open patch '60629375d0eb12348f9d31933dd348ad0f038435': No such file or directory
~/tmp/a(master) $ git stash apply 60629375d0eb12348f9d31933dd348ad0f038435
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   new file:   b
#

Supprimer la cachette: (sauf que ce dernier ne fonctionne pas)

~/tmp/a(master) $ git stash drop !$
git stash drop 60629375d0eb12348f9d31933dd348ad0f038435
'60629375d0eb12348f9d31933dd348ad0f038435' is not a stash reference

899voto

Charles Bailey Points 244082

prend pas de paramètre, qui tombe de la cachette en haut de la page - ou une référence de cachette qui ressemble à : qui Nomine qui cachette de laisser tomber. Vous ne pouvez pas passer un id de validation à .

Je ne sais pas pourquoi vous pensez doivent déposer une cachette parce que si vous utilisez `` une entrée de la cachette n’est pas créée pour votre « cachette » donc il n’y a rien de laisser tomber.

550voto

dahlbyk Points 24897

Vous n’avez pas besoin de supprimer une cachette créée de cette manière. Puisque rien ne fait référence à la validation de la cachette, il obtiendra le garbage collector par la suite.

Mise à jour : Pour clarifier, la question originale demande précisément à environ , pas la valeur par défaut . Pour supprimer une cachette typique, voir l’excellente réponse de Charles.

234voto

FelipeP Points 456

Si vous êtes sûr que vous avez juste une cachette à 100 % (faire un `` pour être sûr de 107 %), vous pouvez faire un

et oublier (elle supprime toutes les cachettes).

Remarque : Ajouté cette réponse pour ceux qui ont fini d’ici à la recherche d’un moyen de faire disparaître tout (comme moi).

73voto

ShalomSam Points 649

Vous devriez être en utilisant

git stash save

et pas

git stash create

parce que cela crée une cachette (qui est régulièrement l'objet commit) et retourne son nom de l'objet, sans le ranger n'importe où dans la ref de l'espace de noms. Donc ne sera pas accessible avec stash s'appliquent.

Utiliser git stash save "some comment" est utilisé lorsque vous avez unstaged changements que vous voulez répliquer/se déplacer sur une autre branche

Utiliser git stash apply stash@{0} (en supposant que vous avez enregistré dans votre cachette indice est égal à 0) lorsque vous souhaitez enregistrer votre projet(caché) des changements à réfléchir sur votre branche courante

vous pouvez toujours utiliser git stash list pour voir tout ce que vous cachez index

et utiliser git stash drop stash@{0} (en supposant que vous avez enregistré dans votre cachette indice est égal à 0 et tu veux le supprimer) pour supprimer une cachette.

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