GNU/Linux Desktop Survival Guide
by Graham Williams
Stash when pulling into a dirty tree
When you are in the middle of something and you learn that there are upstream changes that are possibly relevant to what you are doing. When your local changes do not conflict with the changes in the upstream, a simple git pull will let you move forward.
However, there are cases in which your local changes do conflict with the upstream changes, and git pull refuses to overwrite your changes. In such a case, you can stash your changes away, perform a pull, and then unstash, like this:
$ git pull ... file foobar not up to date, cannot merge. $ git stash $ git pull $ git stash pop