When switching to another branch while changed files exist in working directory or staging area, a dialog appears with options to "Stash and reapply", "Don't change" or "Discard" local changes. Selected option is preserved between feature uses, and there is not any confirmation dialog for the last option, which made me really sad today.
I believe that confirmation dialog isn't enough though, and it would be better to make a commit with all the changes and add "backup/..." tag to it before discarding any files (even unstaged ones), similarly with "rebase" implementation.