Shelving is temporarily storing not yet committed changes in a dedicated shelf.
Unshelving is returning postponed changes from a shelf to a pending changelist.
With PhpStorm, you can shelve and unshelve both separate files and entire changelists or shelves.
Unshelved changes can be filtered out from the view or removed from the shelf. Once shelved, a change can be applied as many times as you need by unshelving and subsequently restoring it on the shelf.
In the Git integration, in addition to shelving and unshelving "stashing" and "unstashing" are supported respectively. These features have much in common, the only difference is in the way patches are generated and applied.
- Patches with stashed changes are generated by Git itself. To apply them later, you do not need PhpStorm.
- Patches with shelved changes are generated by PhpStorm. Normally, they are also applied through the IDE. Applying shelved changes outside PhpStorm is also possible but requires additional steps.
In this section: