On undoing, fixing, or removing commits in git
sethrobertson.github.io
sethrobertson.github.io
however, you can also look into this as a safety feature :) removing stuff is dangerous work in version control and thus, maybe, it's good that every time you have to do a dangerous thing, you need to refresh your memory by checking things. doctors and pilots started using check-lists that they go through before operations so that they don't do any mistakes and it seems to be decreasing the number of 'unforced-errors' so to speak... maybe this non-intuitive syntax also helps git in preventing committing simple errors...
It's a nice guide because sometimes people don't even know what they really want because terms like revert are overloaded.