My boyfriend went way to far.

I don’t know what to do at this point. My boyfriend is my whole world, I’ve given up basically everything for him. I cut off all my friends, I have no contact with my ex’s , I got off birth control because he asked me to which lead me to get kicked out of my house, I’ve fought with every single person in my family about him and basically picked him over my family, I quit my job because he didn’t like that I worked with one of my ex’s, I threw away over 1000$ in makeup because he doesn’t approve of my makeup, I donated any clothes he didn’t approve of, and I gave him the passwords to all my social media and he filters whoever I talk to and goes through it nightly. He’s all I have and he knows he’s all I want. I’m giving up my future for him because he wants to have a kid. I have no escape anymore and it’s getting worse, today he put his hands on me for the first time. We were arguing about the fact that I went and got my nails filled without his permission, which his argument is it was a waste of gas and money and they looked trashy and when I tried to explain that I used my own money, drove my own car and used my own gas and that if he wanted me to I’d just get them trimmed down next time and I tried to walk away and he flipped out and grabbed my arm, ripped my keys out of my hands so hard to the point where my key chain broke and hid my keys from me so now I have no way to leave. He’s apologized but won’t give me my keys back and said for the next week he would be driving me everywhere. I don’t know what to do. I have no where to go if I leave and every time I’ve tried to leave he follows me around town and blows up my phone to the point where I answer just so he will finally shut up. I’m more miserable without him then I am with him, I love him so much but this is going to far.