Skip to main content
Shelves let you temporarily save workspace changes and restore them later, similar to Git’s stash. Shelves belong to a single repository but are not tied to any branch, you can create a shelf on one branch and apply it on another. Shelf names must be unique within the repository for each user and cannot exceed 60 characters. For all commands below, the <shelf> parameter can be either the shelf name or ID.

list

Lists all shelves in the repository.
dv shelf

create

Creates a shelf from your current workspace changes.
dv shelf create <name> [paths...] [--no-reset]
<name> is the name for your shelf. [paths...] is an optional list of specific files to shelve. If omitted, all changes are shelved. [--no-reset] keeps the workspace changes after creating the shelf. By default, changes are reset.

show

Shows the list of files contained in a shelf.
dv shelf show <shelf>

apply

Applies a shelf to your current workspace.
dv shelf apply <shelf> [--keep] [-f]
[--keep] preserves the shelf after applying. By default, the shelf is deleted. [-f] skips the confirmation prompt. If the shelved changes conflict with your current workspace, you’ll need to resolve the conflicts before continuing.

rename

Renames an existing shelf.
dv shelf rename <shelf> <new_name>

delete

Permanently deletes a shelf.
dv shelf delete <shelf> [-f]
Use -f to skip the confirmation prompt. This action cannot be undone. For more information about shelving in Diversion, visit the Shelves page.