Git stash
Git stash allows you to save your changes to a repo, without any commits, and go back to the clean state that your repo was in since the last commit. I use stash when I have to pull changes from origin into my code, but I don’t want to commit any of my own changes. Stash allows to manage merge conflicts as well. You can use stash when you want to switch branches.
Note that when you stash, your changes are “stashed” with a reference id on it.
To stash:
git stash
To unstash:
git stash apply
When you apply
the stash, it does not remove the stash, or the state, from the stash list.
If you want to see the stash list, you can:
git stash list
If you want to apply the stash to the current working branch and remove the stash from the list, you can:
git stash pop
Here is a scenario. You are working on changes, you realize that you are working on the master branch when you should have been working on the feature branch. But you dont want to get rid of all the work you have done to switch branches. What do you do? Solution:
git stash
git checkout <feature-branch>
git stash pop
Profit!