How To Use Git Stash Practically – Complete Flow

ByYogesh Mishra
October 24th . 3 min read

A Git stash is a feature in the Git version control system that allows you to temporarily save your current changes, which have not yet been committed, to a separate storage area. This storage area, known as the "stash," is like a safe place where you can store your work temporarily without committing it to the repository.

Why is git stash important?

Git stash is like a safety net in Git. It allows you to tuck away your current work that hasn't been committed yet into a temporary storage area. This comes in handy when you want to switch to another task or branch without leaving behind any unfinished work. It's a way to maintain a tidy history and tackle multiple tasks without the chaos.

How to Create A Stash

git stash save

"Work in progress on feature XYZ"

Verify the Stash

You can use git stash list to see a list of your stashes. It will display the stash entries along with their descriptions.

git stash list 

stash@{0}: On your-branch: Work in progress on feature XYZ

stash@{1}: On your-branch: some work left in the middle. Had to switch branch

Apply or Pop the Stash

If you need to reapply the stashed changes, you can use the git stash apply or git stash pop command. Use apply if you want to keep the stash after applying it, and use pop if you want to remove it after applying

git stash apply 0
git stash pop 0

(remove the stash from the stash list)

git stash apply 

(this will apply the recent stash on the branch)

Demonstrated Complete Flow

Please look into the attached images below to understand demonstrated complete flow -

  • Git Stash Apply


  • Git Stash Pop



Git stash is a versatile and valuable tool in the Git version control system. It empowers developers to efficiently manage their work by providing a secure space to store in-progress changes without the need for immediate commits. Whether you're switching branches, addressing urgent issues, or multitasking on multiple tasks, Git stash ensures a clean and organized version history while maintaining the flexibility to seamlessly switch between different aspects of your project.

By incorporating Git stash into your workflow, you can maintain a level of agility and productivity that is essential in today's fast-paced software development landscape. It's a valuable addition to any developer's toolkit, enabling you to work more efficiently and with greater confidence in your version control processes.