Bird
Raised Fist0
Gitdevops~20 mins

Dropping and clearing stashes in Git - Practice Problems & Coding Challenges

Choose your learning style10 modes available

Start learning this pattern below

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
Challenge - 5 Problems
🎖️
Stash Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
💻 Command Output
intermediate
2:00remaining
What is the output of dropping a stash by name?
You have a stash named stash@{1}. What is the output of the command git stash drop stash@{1}?
Git
git stash drop stash@{1}
Aerror: stash 'stash@{1}' not found.
BDropped stash@{1} (some message about the stash)
CNothing to drop, stash list is empty.
Dfatal: ambiguous argument 'stash@{1}': unknown revision or path not in the working tree.
Attempts:
2 left
💡 Hint
Dropping a stash by its exact name removes it and confirms the action.
💻 Command Output
intermediate
2:00remaining
What happens when you clear all stashes?
What is the output of running git stash clear when you have multiple stashes saved?
Git
git stash clear
AAll stashes cleared silently with no output.
Berror: stash list is empty, nothing to clear.
CCleared 3 stashes successfully.
Dfatal: stash clear is not a git command.
Attempts:
2 left
💡 Hint
Clearing stashes removes all without confirmation or output.
Troubleshoot
advanced
2:00remaining
Why does git stash drop fail with ambiguous argument error?
You run git stash drop stash@{foo} and get the error: fatal: ambiguous argument 'stash@{foo}': unknown revision or path not in the working tree. What is the most likely cause?
Git
git stash drop stash@{foo}
AYour git version does not support dropping stashes by name.
BYou need to run <code>git stash clear</code> first to reset stashes.
CThe stash name 'stash@{foo}' does not exist or is invalid.
DYou must specify the stash index as a number, not a string.
Attempts:
2 left
💡 Hint
Check if the stash name matches an existing stash exactly.
Best Practice
advanced
2:00remaining
What is the safest way to remove a specific stash without affecting others?
You want to remove only the stash at index 2 without touching others. Which command should you use?
Agit stash apply stash@{2} && git stash drop stash@{2}
Bgit stash clear
Cgit stash pop stash@{2}
Dgit stash drop stash@{2}
Attempts:
2 left
💡 Hint
Dropping a stash by its exact name removes only that stash.
🔀 Workflow
expert
3:00remaining
Order the steps to safely clear all stashes after backing them up
You want to save all current stashes as patches before clearing them. Put the steps in the correct order.
A1,2,4,3
B1,4,2,3
C2,1,4,3
D1,3,2,4
Attempts:
2 left
💡 Hint
List stashes first, export each, then clear.

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

  1. Step 1: Understand the purpose of git stash drop

    This command is used to remove one specific stash entry from the stash list.
  2. Step 2: Differentiate from clearing all stashes

    git stash clear removes all stashes, not just one.
  3. Final Answer:

    Removes a single stash entry from the stash list -> Option A
  4. 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

  1. Step 1: Identify the command to clear all stashes

    The correct command to remove all stash entries is git stash clear.
  2. Step 2: Check other options for correctness

    Options A, B, and C are not valid git commands for clearing stashes.
  3. Final Answer:

    git stash clear -> Option C
  4. 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

  1. Step 1: Understand what git stash drop stash@{1} does

    This command removes the stash at index 1, which is 'Fix bug'.
  2. Step 2: Recognize stash reindexing after drop

    After dropping stash@{1}, stash@{2} moves up to stash@{1} position.
  3. Final Answer:

    stash@{0}: WIP on feature
    stash@{1}: Update docs
    -> Option D
  4. 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

  1. 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.
  2. 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.
  3. Final Answer:

    git stash drop without argument removes only the most recent stash (stash@{0}), not all -> Option B
  4. 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

  1. 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.
  2. Step 2: Use git stash drop stash@{1} repeatedly

    Dropping stash@{1} repeatedly removes older stashes safely without affecting the latest stash@{0}.
  3. Final Answer:

    Run git stash drop stash@{1} repeatedly for all except stash@{0} -> Option A
  4. 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
  • Dropping stash@{0} which removes the latest stash