When you unshelve a shelveset, Team Foundation restores each shelved revision into the destination workspace as a pending change as long as the revision does not conflict with a change that is already pending in the workspace. For more details about what happens during the unshelve process, see Working with Version Control Shelvesets.
The two most common reasons why you might want to unshelve a shelveset are:
You can use the unshelve command to restore individual file revisions from a shelveset to your workspace. However, unshelving does not restore your entire workspace to the base workspace version, which is the server version on which a shelved revision is based. After unshelving, perform one of the following operations to guard against the introduction of chronological inconsistencies in your code.
To unshelve a set of pending changes
In Team Explorer, click File, point to Source Control, and then click Unshelve Pending Changes.
The Unshelve dialog box appears.
In the Owner name box, type the shelveset creator's name (for example, ADVENTUREWORKS\JuanGo or simply juango), and then click Find.
In the Results pane, select the shelveset you want to unshelve into your workspace, and then click Details.
In the Shelveset Details dialog box, if you want to delete the shelveset from the Team Foundation version control server, clear the Preserve shelveset on server box.
As an option, deselect the Restore work items and check-in notes option if you do not want to have the work items and check-in notes associated with the shelveset restored.
Select the shelveset or shelveset items you want to unshelve into your workspace, and then click Unshelve.
Unlike the Get operation, which merges reconcilable differences between two versions of a file automatically and helps you merge conflicts manually, the unshelve operation does not support merges. By removing shelved pending changes from your workspace at the commencement of the code review, you can be assured that any changes your reviewer makes to the shelveset, such as adding comments to a file, do not create merge conflicts during the unshelve process.
Unshelve can also be performed from the command line using the Unshelve Command.