Two unrelated power moves that often appear together when you need to context-switch.
Stash parks your uncommitted edits so your working tree matches HEAD again:
git stash — save tracked changes.
git stash -u — also include untracked files.
git stash pop — restore the most recent stash and drop it from the list.
git stash apply — restore but keep the stash around.
git stash list / git stash drop — inspect and remove.
Cherry-pick copies one commit (or a range) from another branch onto yours. It re-applies the commit's changes as a new commit with a new hash:
git cherry-pick <hash> — single commit.
git cherry-pick A..B — every commit after A up to and including B.
git cherry-pick -x <hash> — append "(cherry picked from commit ...)" to the message for traceability.
Typical use: stash your WIP, switch to a release branch, cherry-pick a fix from main, push, switch back, git stash pop.