October 21, 2019

How to Use Git Stash

Git at Scale
Version Control

Using the git stash command, developers can temporarily shelve changes made in the working directory. It allows them to quickly switch contexts when they are not quite ready to commit changes. And it allows them to more easily switch between branches.

Git stash is especially useful for Git newbies who can get overwhelmed with the amount of branching done in Git. But what happens when you are ready to pick the changes again?

Should you commit the unfinished changes? Copy the files somewhere else for safekeeping? Create a new branch and put the files there?

➡️ Get Started with Helix4Git

Back to top

Stashing Your Work

Git stash manages your work queue with the principle last-in-first-out (LIFO) approach. You can “push” work into the stash. And “pop” it off later. It is important to note that Git will not stash new files in your working directory or files that are untracked or have been ignored.

This makes it very simple to stash your work, switch to another branch and back, and then resume your previous work. Let’s walk thorough your workflow:

Check the Status of Your Branch

Use git status on your local repository:

  On branch master
  Your branch is up-to-date with 'origin/master'.

  Changes to be committed:
    (use "git reset HEAD ..." to unstage)

	  new file:   MAKEFILE


Shelve Work Using Git Stash

To stash work, execute a git stash command. The output:

Saved working directory and index state WIP on master: 3acc7a9 Remove version history & my postal address from

HEAD is now at 3acc7a9 Remove version history & my postal address from


If you were to do another git status command at this point, it would show no work in progress. You can confirm that you have added something to the stash by listing its contents with a git stash list command:

stash@{0}: WIP on master: 3acc7a9 Remove version history & my postal address from


Recover Work Using Git Stash Pop or Git Stash Apply

When you want to recover that work, you can use either the git stash apply command or the git stash pop command.

Git Stash Pop

Popping your stash removes the changes from your stash and applies them to your working directory.

Git Stash Apply

You can also apply the changes to your working directory and keep them in your stash using the git status apply command. This is especially useful when applying stashed changes to multiple branches.

Back to top

Perforce + Git

Using Git stash can help you manage your work. But if you want to improve efficiency in using Git, it might be time to add other solutions.

Perforce offers solutions to help Git teams do their work more efficiently. You can use Helix TeamHub to host your Git repositories. And you can use Helix4Git to bring your Git code into your pipeline more efficiently.

Learn more about how Perforce Git tools can help you. Contact us to get started.

contact us


Related Content:

Back to top