How can I delete all of my Git stashes at once?
Categories:
How to Delete All Git Stashes at Once

Learn the commands and best practices for efficiently clearing all your Git stashes, ensuring a clean working environment.
Git stashing is a powerful feature that allows developers to temporarily save changes that are not ready to be committed. This is incredibly useful for switching branches, pulling updates, or handling urgent bug fixes without committing incomplete work. However, over time, the list of stashes can grow, becoming cluttered and difficult to manage. This article will guide you through the process of deleting all your Git stashes simultaneously, helping you maintain a clean and organized repository.
Understanding Git Stash
Before we dive into deletion, let's quickly recap what Git stash does. When you run git stash
, Git takes your modified tracked files and staged changes, saves them on a stack of unfinished changes, and then reverts your working directory to match the HEAD
commit. This leaves you with a clean working directory, ready for other tasks. Each time you stash, a new entry is added to your stash list, typically indexed as stash@{0}
, stash@{1}
, and so on.
flowchart TD A[Working Directory with Changes] --> B{git stash} B --> C[Changes Saved to Stash Stack] B --> D[Working Directory Cleaned] C --> E[Stash List: stash@{0}, stash@{1}, ...] D --> F[Ready for New Tasks]
Simplified Git Stash Workflow
Viewing Your Stashes
It's always a good idea to inspect your current stashes before performing any bulk deletion. This ensures you don't accidentally remove any important work. You can view your list of stashes using the git stash list
command.
git stash list
Command to list all current Git stashes.
This command will output a list similar to this:
stash@{0}: WIP on main: 5d1f3a2 Initial commit
stash@{1}: WIP on feature/new-feature: 8c2e1b0 Add user authentication
stash@{2}: On develop: 1a3b5c7 Refactor database queries
Each entry represents a saved stash, with stash@{0}
being the most recent.
Deleting All Stashes
To delete all your Git stashes at once, Git provides a straightforward command: git stash clear
. This command removes every entry from your stash list, effectively emptying the stash stack. Be aware that this action is irreversible, so proceed with caution.
git stash clear
Command to delete all Git stashes.
git stash clear
command is irreversible. Once executed, all stashed changes are permanently deleted and cannot be recovered. Always ensure you no longer need any of your stashed work before running this command.Verifying the Deletion
After running git stash clear
, you can verify that all stashes have been removed by running git stash list
again. The output should be empty, indicating that your stash stack is now clean.
git stash list
Verify that no stashes remain.
If the command returns no output, it means your stash list is empty.
Alternative: Deleting Individual Stashes
While this article focuses on deleting all stashes, it's worth noting that you can also delete individual stashes if you only want to remove specific ones. The command for this is git stash drop <stash_id>
, where <stash_id>
is typically stash@{0}
, stash@{1}
, etc.
git stash drop stash@{1}
Example of deleting a specific stash.
git stash apply <stash_id>
or git stash pop <stash_id>
.Maintaining a clean Git stash list is a good practice for keeping your development workflow organized. The git stash clear
command provides a quick and efficient way to achieve this, but always remember its irreversible nature.