this is the biggest weak point of using git in my opinion. if you are not in the habit of using these undo/remove/fix operations in a regular basis, these commands slip away from you...
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...
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...