When I have to apply stashed changes to a dirty working copy, e.g. pop more than one changeset from the stash, I use the following: $ git stash show -p | git apply -3 && git stash drop Basically it creates a patch pipes that to the apply command if there are any conflicts they will need to be resolved via 3-way merge if apply (or merge) succeeded it drops the just applied stash item... I wonder wh
![Git stash: "Cannot apply to a dirty working tree, please stage your changes"](https://cdn-ak-scissors.b.st-hatena.com/image/square/98d6f053a97a87156775f60757c60865d0f2c47d/height=288;version=1;width=512/https%3A%2F%2Fcdn.sstatic.net%2FSites%2Fstackoverflow%2FImg%2Fapple-touch-icon%402.png%3Fv%3D73d79a89bded)