I don’t know what to do

I am in a 3 year relationship with my boyfriend, where we have always had off and on arguments about stupid stuff. Sometimes it’ll be on me and other times it would be him. At the beginning I was 16 years old getting in this relationship, i had to leave my long friendship because he didn’t like her. So when we would get in arguments, i would tell my mom because i had no one to tell anything to. My mom called him verbally abusive because of the things I told her, which made a huge family feud. I have tried my best making it better by not speaking to my mom about it and regaining the long friendship behind his back. I need her to help with these problems because i can’t do it alone. He hasn’t liked my family since because of the things my mom has told them. I know I shouldnt have brought her into It, which we have agreed to not speak poorly about him. A year and a couple of months later, He’s getting to a point in arguments where he gets so mad, where he tells me “if I were a man I’d beat tf out of you, but I can’t.” He has also gotten to the point in arguments where he forgets what he’s doing and physically gets his body and pushes me. I love this man and I don’t want to hurt him by breaking up with him because of how I broke up with a guy before him. My heart wants him but my mind doesn’t.

To put into detail: with the argument of him saying that “if I were a dude…” we were talking about our relationship and he was looking at me and saying that I was looking like or being like a smart ass and had that response. When he put his body on me and push me down, he was frustrated with a project that he did not get done on time and needed help. During that time of me helping him, he was continuously yelling at me and telling me, “I’m not listening to him.” While he was still yelling at me, I yelled back and that’s how he responded.