Jump into concepts and practice - no test required
or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Dropping and Clearing Stashes in Git
📖 Scenario: You are working on a project using Git. You have saved some changes temporarily using Git stash. Now, you want to clean up your stash list by removing specific stashes or clearing all stashes.
🎯 Goal: Learn how to drop a specific stash and clear all stashes using Git commands.
📋 What You'll Learn
Create multiple stashes using git stash
Drop a specific stash by its index
Clear all stashes at once
Verify the stash list after each operation
💡 Why This Matters
🌍 Real World
Developers often save unfinished work temporarily using stashes. Cleaning up old or unused stashes keeps the project tidy and avoids confusion.
💼 Career
Knowing how to manage Git stashes is essential for developers and DevOps engineers to maintain clean version control history and efficient workflows.
Progress0 / 4 steps
1
Create multiple stashes
Create two stashes by running git stash twice to save your current changes temporarily.
Git
Hint
Run git stash command two times in your terminal to save changes twice.
2
Check the stash list
Run git stash list to see the list of all stashes you have saved.
Git
Hint
Use git stash list to display all saved stashes.
3
Drop a specific stash
Use git stash drop stash@{0} to remove the most recent stash from the stash list.
Git
Hint
Use git stash drop stash@{0} to delete the first stash in the list.
4
Clear all stashes
Run git stash clear to remove all stashes from your stash list.
Git
Hint
Use git stash clear to delete all stashes at once.
Practice
(1/5)
1. What does the git stash drop command do?
easy
A. Removes a single stash entry from the stash list
B. Removes all stash entries at once
C. Creates a new stash entry
D. Shows the list of all stash entries
Solution
Step 1: Understand the purpose of git stash drop
This command is used to remove one specific stash entry from the stash list.
Step 2: Differentiate from clearing all stashes
git stash clear removes all stashes, not just one.
Final Answer:
Removes a single stash entry from the stash list -> Option A
Quick Check:
Drop = remove one stash [OK]
Hint: Drop removes one stash, clear removes all [OK]
Common Mistakes:
Confusing drop with clear
Thinking drop creates a stash
Assuming drop shows stash list
2. Which of the following is the correct syntax to clear all stashes in git?
easy
A. git stash drop --all
B. git stash delete --all
C. git stash clear
D. git stash remove all
Solution
Step 1: Identify the command to clear all stashes
The correct command to remove all stash entries is git stash clear.
Step 2: Check other options for correctness
Options A, B, and C are not valid git commands for clearing stashes.
Final Answer:
git stash clear -> Option C
Quick Check:
Clear = remove all stashes [OK]
Hint: Use 'git stash clear' to delete all stashes at once [OK]
Common Mistakes:
Using 'drop --all' which is invalid
Trying 'remove all' which is not a git command
Confusing delete with clear
3. Given the stash list: stash@{0}: WIP on feature stash@{1}: Fix bug stash@{2}: Update docs What will be the stash list after running git stash drop stash@{1}?
medium
A. stash@{0}: WIP on feature stash@{1}: Fix bug
B. stash@{0}: WIP on feature stash@{1}: Fix bug stash@{2}: Update docs
C. stash@{0}: Fix bug stash@{1}: Update docs
D. stash@{0}: WIP on feature stash@{1}: Update docs
Solution
Step 1: Understand what git stash drop stash@{1} does
This command removes the stash at index 1, which is 'Fix bug'.
Step 2: Recognize stash reindexing after drop
After dropping stash@{1}, stash@{2} moves up to stash@{1} position.
Final Answer:
stash@{0}: WIP on feature stash@{1}: Update docs -> Option D
Quick Check:
Drop stash@{1} removes it and shifts others up [OK]
Hint: Dropped stash removed, higher indexes shift down [OK]
Common Mistakes:
Not realizing stash indexes shift after drop
Assuming stash@{1} remains after drop
Confusing stash names with indexes
4. You tried to remove all stashes using git stash drop without any arguments, but it did not remove all stashes. What is the likely cause?
medium
A. The command git stash drop clears all stashes by default
B. git stash drop without argument removes only the most recent stash (stash@{0}), not all
C. You need to run git stash clear before drop works
D. You must be on the master branch to drop stashes
Solution
Step 1: Understand git stash drop usage
This command removes one stash: stash@{0} (most recent) if no argument given, or a specific stash if referenced.
Step 2: Identify why it doesn't remove all
Without argument, it only drops the most recent stash, not all. To remove all, repeat or use git stash clear.
Final Answer:
git stash drop without argument removes only the most recent stash (stash@{0}), not all -> Option B
Quick Check:
Drop w/o arg = drop stash@{0} only [OK]
Hint: drop w/o arg removes latest only, clear removes all [OK]
Common Mistakes:
Assuming drop clears all stashes
Thinking drop without argument does nothing
Thinking branch affects stash drop
5. You have multiple stashes and want to remove all except the most recent one. Which sequence of commands achieves this safely?
hard
A. Run git stash drop stash@{1} repeatedly for all except stash@{0}
B. Run git stash clear then create a new stash for the most recent changes
C. Run git stash pop to apply and remove all stashes except the latest
D. Run git stash drop stash@{0} to remove the latest stash only
Solution
Step 1: Understand stash indexing and removal
Stashes are indexed from 0 (most recent) upwards. To keep the latest, remove others starting from index 1.
Step 2: Use git stash drop stash@{1} repeatedly
Dropping stash@{1} repeatedly removes older stashes safely without affecting the latest stash@{0}.
Final Answer:
Run git stash drop stash@{1} repeatedly for all except stash@{0} -> Option A
Quick Check:
Drop specific stashes to keep latest safe [OK]
Hint: Drop stashes from index 1 up to keep latest [OK]
Common Mistakes:
Using clear which deletes all stashes
Using pop which applies and removes only one stash