I use my own git repository for tracking some third-party source tree and put a couple of mine commits on top of it. Usually, when I want to try a newer version, I only need to call git rebase upstream/master. But sometimes the upstream drops some commits and my rebase fails. It's no serious problem, as I can always reset to the upstream and cherry-pick my changes. Or I can remove the dropped commits using interactive rebase.
However, it's not optimal and I'd like to automate it somehow. A command like "remember all my commits in master, reset master to upstream/master and re-apply the remembered commits" would be nice. I could build something like this using cherry-pick, but it aborts on the first problem and then I'd left with some commits applied and others lost.