[alias]
undo = reset HEAD~1 --mixedRemote reflog contains this info (if enabled).
Of course not all commands would be reversible, especially not plumbing.
Is there a valid reason to do this in the first place?
> git push origin -f
No standard way to undo that. Only do it if you must, and you absolutely do what's going to happen. Always do a "got remote update" immediately before the force-push and double-check that the remote branch points to what you expect.
As a general rule, "--force" is short for "you better be prepared to deal with the consequences".
EDIT: the replies to this don't get how feature requests work. yes, I could write this basic feature myself. thanks.
#! /bin/bash
git reset HEAD~1 && git checkout .A minor usability investment on the part of 1-2 git developers would prevent thousands of hours wasted by newbies and perpetual intermediates (https://blog.codinghorror.com/defending-perpetual-intermedia...).