Earlier quoted context omitted.
"Just don't make a mistake" is a pretty bad strategy.
But "save your changes before running a command that can clobber" is a pretty good strategy.
If you give people a way to get to a clean slate it removes a significant amount of the learning curve. In my experience, push/pull/fetch/log/diff are easy enough it's only really merge/rebase management that gets people caught up. Giving people a short fuck up -> undo -> retry cycle lets people learn pretty quick.