Using GitUp on the Mac as a client. It allows you to select a commit and press Options-S to reset your branch to this commit, it allows you to squash etc.
And best of all it keeps a backup of your entire repository so you can undo whatever git command you just did.
And best of all it keeps a backup of your entire repository so you can undo whatever git command you just did.