Good modern software always offers an undo option. Where is "git undo"?
Even the operations which do show will often require more thought to undo than a hypothetical "git undo" would. I know how to use the reflog but I often go out of my way to avoid it because "git branch tmp HEAD; git $POSSIBLE_MISTAKE; git reset ---hard tmp; git branch -D tmp" requires less effort than deciphering the reflog's output.
Undoing a push does require a different set of commands, but my point, to the question @amelius asked, is that you can undo both push and add, and whatever other mistake you’re thinking of, difficult or not.
Git, coincidentally, does have something equivalent to undo history: the reflog.
git reset HEAD~1
Usually works good enough for me. Idk if this is the proposed way to undo stuff