p4 unshelve

Restore shelved files from a pending change into a workspace.


p4 [g-opts] unshelve -s shelvedchange [-f  -n] [-c change] [-b branch | -S stream [-P stream]] [file ...]


The p4 unshelve command retrieves files that are shelved in a pending changelist into a pending changelist on the invoking user’s workspace. Access to shelved files from a pending changelist is controlled by the user’s permissions on the files.

In addition to the files being unshelved, p4 unshelve also unshelves any open stream specification. For more information on open stream specifications, see p4 stream.

You can limit the files to be unshelved by specifying a file pattern.

Unshelving copies the shelved files into the user’s workspace as they existed when they were shelved. (For example, a file open for edit when shelved will also be open for edit in the unshelving user’s workspace.)

You may unshelve a promoted shelf into open files and branches on a server from where the shelf did not originate.


As a best practice, use the -f option to unshelve a shelf that has added files.

p4 obliterate myfile does not obliterate a shelve of the file (archive or metadata). When you attempt to unshelve a file that has been obliterated, you will get an error. To recover the content of that file, print the file. To get rid of the shelve, delete the shelf.


-b branch

Specifies a branch spec through which the shelved files will be mapped prior to unshelving. This option enables you to shelve files in one branch and unshelve them in another.

-c change

Specify a changelist number in the user’s workspace into which the files are to be unshelved. By default, p4 unshelve retrieves files into the default changelist.


Force the overwriting of writable (but unopened) files during the unshelve operation.


Preview the results of the unshelve operation without actually restoring the files to your workspace.

-P stream

Unshelve to the specified parent stream. Overrides the parent defined in the source stream specification.

-s shelvedchange

Specify the pending changelist number that contains the originally-shelved files.

-S stream

Specifies the use of a stream-derived branch view to map the shelved files between the specified stream and its parent stream. See also the -P option.


See Global Options.

Usage Notes

Can File Arguments Use Revision Specifier? Can File Arguments Use Revision Range? Minimal Access Level Required




Unshelving a file over an already opened file is only permitted if both the shelved file and the opened file are opened for edit. (After unshelving, the workspace file is flagged as unresolved, and you must run p4 resolve to resolve the differences between the shelved file and the workspace file before submitting or reshelving the file.)

Related Commands

To store files from a pending changelist into the depot without submitting them.

p4 shelve