That's the key - don't be too hard on yourself. How many of us have started diets, then slipped up on a small chocolate or something, and then gone - bugger it, I've broken it, and proceed to eat ourselves silly on anything because the diet was over?
I know I have!
The key is to pick yourself up and jump back on the wagon before you do much damage.. and realise we're all human and we make mistakes.. and the more you forbid yourself for something, the more you want it.
Negative reinforcement doesn't work as well as positive reinforcement. It's like with children and bedwetting (odd example, but I learned about this in paeds) - if you yell at the child, they tend to bedwet more. But if you do a reward system - ignore it when they wet the bed, but heap praise on them and give them a sticker or something when they don't, they learn the good habit of NOT wetting the bed a lot quicker, and their self esteem is better.
I work off that principle myself. Rather than beating myself up for not exercising, or for eating badly, as I used to do, I reward myself for doing well. If I eat within my calorie limit and do 30 minutes of exercise, I stick a star on my calender. If I don't, I do nothing but try to achieve my star the next day. It's amazing how putting a positive spin on things can really help.
In terms of self sabotage - only you can know why you do this. A lot of us do it, I'm sure, in different aspects of our life. You need to examine the reasons - what are you afraid of? and work on this before you will be able to stop doing it.
Best of luck!
We're all here to support you along the way...