26 Temporarily Hiding Changes

Some Git operations, such as git rebase, require a clean working tree—a working tree with no changes. git stash gives you a tool to hide changes that aren’t quite ready to commit so you can come back to them.

Stashing changes is the equivalent of creating a commit and then resetting your repository back one commit. Stash provides a mechanism for grabbing those changes out of history more easily, however.

Stash names are similar to the names you see in the reflog (see Task 40, ​Retrieving “Lost” Commits​). You refer to them as stash@{#}, replacing the # with the age of the stash. The most recent is 0, the one before that is 1, and so on.

You can call git stash without any parameters to create ...

Get Pragmatic Guide to Git now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.