Comment puis-je supprimer tous mes stashs Git à la fois?
Plus précisément, je veux dire, en tapant une commande.
Comment puis-je supprimer tous mes stashs Git à la fois?
Plus précisément, je veux dire, en tapant une commande.
Réponses:
La commande suivante supprime tous vos stashes:
git stash clear
De la documentation git :
clear
Supprimez tous les états cachés.
AVERTISSEMENT IMPORTANT: Ces états seront alors soumis à l'élagage, et peuvent être impossibles à récupérer (...).
stash drop
( » Suppression d' un seul état planqué dans la liste Stash Lorsqu'aucun <Stash> est donné, il supprime le dernier (...).. « ) ne répond pas à la question ( » Comment puis - je supprimer tous des mon Git se cache à la fois? ")?
git stash clear
, pour confirmer si tout est effacé, utilisez -git stash list
git
est pratiquement impossible à trouver! git-scm.com/docs/git-stash
git help <command>
est le meilleur moyen d'obtenir de la documentation (et c'est en fait assez bon). Dans ce cas, git help stash
montrez clairement que git stash clear
fait l'acte (cela ne m'a pas empêché de venir à SO en premier et de voter pour la réponse ... mais cela vous en dit plus sur moi que git
: D)
Il existe deux façons de supprimer une cachette:
$ git stash drop <stash_id>
.$ git stash clear
.Utilisez-les avec prudence, il est peut-être difficile de rétablir les masques une fois supprimés.
Voici l' article de référence .
cette commande vous permet de regarder toutes les modifications cachées.
git stash list
Voici la commande suivante, utilisez-la pour effacer toutes vos modifications cachées
git stash clear
Maintenant, si vous souhaitez supprimer l'une des modifications cachées de la zone de cachette
git stash drop stash@{index} // here index will be shown after getting stash list.
Remarque:
git stash list
vous permet d'obtenir l'index de la zone de stockage de git.
git stash drop 'stash@{index}'
avec des apostrophes.
Je voulais garder quelques cachettes récentes, mais supprimer tout le reste.
Parce que tous les stashes sont renumérotés lorsque vous en déposez un, cela est en fait facile à faire avec while. Pour supprimer tous les stashes antérieurs à stash @ {19}:
while git stash drop 'stash@{20}'; do true; done
git stash pop 3
place? Je voulais savoir si nous pouvions utiliser les while
boucles de boucle et de dépôt à l'aide de valeurs d'index.
J'avais une autre exigence comme seulement quelques cachettes à supprimer, le code ci-dessous serait utile dans ce cas.
#!/bin/sh
for i in `seq 5 8`
do
git stash drop stash@{$i}
done
/ * supprimera de 5 à 8 index * /
for iterator in `seq 5 8`; git stash drop stash@{$iterator}; done
for i in `seq 4`; do git stash drop 'stash@{5}'; done
do
si vous souhaitez supprimer la dernière cachette ou un index particulier -
git stash drop type_your_index
> git stash list
stash@{0}: abc
stash@{1}: xyz
stash@{1}: pqr
> git stash drop 0
Dropped refs/stash@{0}
> git stash list
stash@{0}: xyz
stash@{1}: pqr
si vous souhaitez supprimer tous les stash à la fois -
> git stash clear
>
> git stash list
>
Avertissement : une fois terminé, vous ne pouvez pas revenir en arrière
Pour supprimer tous les stashes de plus de 40 jours, utilisez:
git reflog expire --expire-unreachable=40.days refs/stash
--dry-run
Cliquez sur Ajouter pour voir quels masques sont supprimés.
Voir https://stackoverflow.com/a/44829516/946850 pour une explication et bien plus de détails.