How can I delete all of my Git stashes at once?
Specifically I mean, with typing in one command.
011 Answers
The following command deletes all your stashes:
git stash clearFrom the git documentation:
7
clearRemove all the stashed states.
IMPORTANT WARNING: Those states will then be subject to pruning, and may be impossible to recover (...).
This command enables you to look all stashed changes:
git stash listHere is the following command use it to clear all of your stashed changes:
git stash clearNow if you want to delete one of the stashed changes from stash area:
git stash drop stash@{index} # Index will be shown after getting stash listNote: git stash list enables you to get index from stash area of git.
There are two ways to delete a stash:
- If you no longer need a particular stash, you can delete it with:
$ git stash drop <stash_id>. - You can delete all of your stashes from the repo with:
$ git stash clear.
Use both of them with caution, it maybe is difficult to revert the once deleted stashes.
Here is the reference article.
1I wanted to keep a few recent stashes, but delete everything else.
Because all stashes get renumbered when you drop one, this is actually easy to do with while. To delete all stashes older than stash@{19}:
while git stash drop 'stash@{20}'; do true; done 2 Clear all stashes at once
git stash clearList all stashes
git stash listdelete specific stash
git stash drop stash@{index} To delete all stashes older than 40 days, use:
git reflog expire --expire-unreachable=40.days refs/stashAdd --dry-run to see which stashes are deleted.
See for an explanation and much more detail.
if you want to remove the latest stash or at any particular index -
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}: pqrif you want to remove all the stash at once -
> git stash clear
>
> git stash list
>Warning : Once done you can not revert back your stash
If you just want to clear the latest stash or even you created a stash with git stash create then you should simply use
git stash dropbut if you want to clear all the git stashes of the current git repository then you can use
git stash clearWARNING: Those states will then be subject to pruning(knock off), and maybe impossible to recover
I had another requirement like only few stash have to be removed, below code would be helpful in that case.
#!/bin/sh
for i in `seq 5 8`
do git stash drop stash@{$i}
done/* will delete from 5 to 8 index*/
2If you are working with VSCode, the 1.64 (Jan. 2022) will include git stash clear in its commands.
See issue 123375 and commit 302c41c:
"command": "git.stashDropAll",
Clear all stash from the list:git stash clear
Clear particular index from the list:git stash drop index