Appearance
Change shelf
The shelf is git stash as a list you can read. Shelving moves changes off the working tree into an entry; applying brings them back, all of them or the parts you pick, through a review that shows how each file lands.
Shelve
From the Unstaged section header's menu, Shelve… offers every unstaged change; from a file's menu it offers that file. On the Shelve changes screen, tick the files to take. A modified file can be opened to pick individual hunks, so half a change can go on the shelf and the other half stay. Shelve 3 files writes the entry and then removes the changes from the working tree.
Only unstaged changes are shelved. To shelve staged work, Unstage all first. The entry is named after the branch and the time, and can be renamed.
Every file is written to the entry and read back before anything is removed from the tree, so a shelve that fails leaves your changes where they were.
The Shelved section
Entries appear under Shelved in the Git sidebar, after Unstaged, and only while there are any. Each row shows the entry's name, its file count, the branch it came from and how long ago. Tap the row to inspect it; tap Apply for the apply review. The row's menu has Share, which exports the entry as a patch file, Rename… and Delete….
Apply
The entry screen lists the files with a checkbox each; open a file to pick hunks. Apply 2 files opens the review.
The review compares each file with the working tree as it is now and says what would happen: Applies as is, Merges around your edits when you changed the file since, Already on the tree, Will be created, Will be removed, or a conflict. Tap a row to see the file as it will land. A conflicted file opens the resolution screen, labelled working tree against the entry's name; see Resolving a conflict. When every file is settled, Apply writes them all at once.
The entry stays on the shelf after an apply. Delete it when you no longer need it.
When switching branches
The branch-switch refusal screen offers Shelve your changes… when your uncommitted work collides with the target branch. It opens the shelve screen with everything selected. Shelve, switch, and apply on the other side. See Branches.
Where the shelf lives
Entries are kept in the app's own database, not in the repository, and each stores both sides of every file. They are deleted with the project and do not travel with a clone. To move one elsewhere, Share it as a patch.
