Git stash
Use git stash
when you want to change to a different branch, and you
want to store changes that are not ready to be committed.
-
Stash:
git stash save # or git stash # or with a message git stash save "this is a message to display on the list"
-
Apply stash to keep working on it:
git stash apply # or apply a specific one from out stack git stash apply stash@{3}
-
Every time you save a stash, it gets stacked. Use
list
to see all of the stashes.git stash list # or for more information (log methods) git stash list --stat
-
To clean the stack, manually remove them:
# drop top stash git stash drop # or git stash drop <name> # to clear all history we can use git stash clear
-
Use one command to apply and drop:
git stash pop
-
If you have conflicts, either reset or commit your changes.
-
Conflicts through
pop
don't drop a stash afterwards.
Git stash sample workflow
- Modify a file.
- Stage file.
- Stash it.
- View the stash list.
- Confirm no pending changes through
git status
. - Apply with
git stash pop
. - View list to confirm changes.
# Modify edit_this_file.rb file
git add .
git stash save "Saving changes from edit this file"
git stash list
git status
git stash pop
git stash list
git status