It might help creating patches for the dirty state with something like `git diff > feature.patch` and then drop the current changes. After update, it's another `git apply feature.patch` to restore the changes.
This helps with remembering what each change means since `git stash show` is rather awful. YMMV