Safe on shared branches because it never rewrites history. Reverting a merge commit needs -m 1 to choose the mainline parent. Compare with reflog and reset.