Skip to main content

Command Palette

Search for a command to run...

🧹 Git Stash: The "Pause Button" for Your Code

Updated
4 min read
🧹 Git Stash: The "Pause Button" for Your Code

Have you ever been deep in the zone, writing complex code, when suddenly your manager pings you:

"Critical bug in production! Fix it NOW!" 🚨

Panic sets in. Your current code is a mess—it won't even compile. You can't commit it (that would break the history), but you can't delete it either because you've spent hours on it.

Enter Git Stash.

In this guide, we’ll master the art of "shelving" your work so you can switch tasks without losing your mind (or your code).


🤔 What is Git Stash?

Think of your coding workspace like a dining table.

You're doing a 1000-piece puzzle (your code). Suddenly, you need to clear the table to eat dinner (fix a bug).

You don't want to destroy the puzzle.

Git Stash is like picking up the entire puzzle, putting it on a shelf, eating dinner, and then putting the puzzle back exactly how you left it.

In technical terms: It reverts your files to the last clean commit but saves your work in a hidden storage area.


⚡ The "Emergency Fix" Scenario (Demo)

Let's look at the most common real-world usage.

The Situation: You are working on feature/cart, but you need to switch to the main branch to fix a typo immediately.

Step 1: Save your chaos

Don't just run git stash. Trust me, you will forget what is inside. Give it a name!

Bash

git stash save "WIP: half-finished cart logic"

Result: Your code disappears safely into the stash. Your folder is now clean.

Step 2: Switch and Fix

Now that your "table is clean," you can switch branches without errors.

Bash

git checkout main
# ... fix the bug, commit, and push ...

Step 3: Bring it back

You're done with the fix. Go back to your feature branch and grab your puzzle off the shelf.

Bash

git checkout feature/cart
git stash pop

Result: Boom. Your code is back exactly where you left it.


🛠️ The Only Commands You Need

While Git has many stash commands, you will use these 4 about 90% of the time.

1. Save with a Message

Bash

git stash save "My message here"

Always name your stashes. If you don't, you'll see a list of WIP on master... and have no idea which one is which.

2. View Your Stash List

Bash

git stash list

This shows everything you've shelved, like: stash@{0}: On master: My message here.

3. Apply and Delete (Pop)

Bash

git stash pop

This takes the top item off the stack, applies it to your code, and deletes it from the stash list.

4. Stash Everything (Including New Files)

By default, stash ignores new files you just created (untracked files). To stash everything:

Bash

git stash -u

🧠 Pro Tips for Power Users

1. Don't Hoard Stashes

Treat the stash like a temporary clipboard, not a long-term archive. If you keep a stash for more than a few days, it should probably be a Branch or a Commit, not a stash.

2. The "Stash Branch" Trick

If you try to pop a stash and get a million conflicts, you can move that stash into its own safe branch to sort it out:

Bash

git stash branch fix-conflicts stash@{0}

3. Speed Aliases

I hate typing long commands. Add these to your Git config to speed up your workflow:

  • git ss "msg"git stash save "msg"

  • git spgit stash pop

  • git slgit stash list


📝 Cheatsheet

Action

Command

Save (Named)

git stash save "message"

Retrieve & Delete

git stash pop

List Stashes

git stash list

Delete Specific

git stash drop stash@{0}

Delete ALL

git stash clear (⚠️ Careful!)


🏁 Final Thoughts

git stash is one of those tools that separates beginners from pros. It turns the chaos of multitasking into a smooth, organized workflow.

Next time you get interrupted, don't panic. Just stash it.