My boyfriend hits me everytime we have a heated argument and keeps telling me he'll change?

( ps. this will be long pls bear with me i need every adv i can get) My boyfriend and i have been together for nearly 3 years now, during the first 2 months of dating he cheated on me BUT during that period of dating i could say we were exploring our options? (if thats even a thing) cos i was also talking to this other guy but anyways he cheated on me (slept with another girl) and i forgave him cos it didn't really count cos we weren't in a serious relationship at that time. Our relationship took a huge turn after i gave him a second chance he was fully committed to me 100% he moved in with me (this was his first ever serious relationship) we've had our ups and downs there were days when we'd fight and he'd cry and I'd be so stubborn to him but i would always make sure to solve our problems first before the day ends, our relationship was going well and he would always tell me how much I've changed him (he was more of a bad guy and i was more of a good girl). Soooo the 2nd year came and everything started to change slowly everytime we'd have an argument instead of solving the problem he would hit me (slap me on the face/punch me on the mouth/threaten me) onetime he nearly choked me to death, and everytime we'd fight like that he would apologize and tell me that he doesn't understand why he snaps like that and his trying his best to stop hitting me like that (his mom use to hit him so bad growing up as a kid and still did the first year we were dating) we're both in our mid 20s now and i feel like his child hood really traumatized him but I don't know NO MAN SHOULD BE hitting a woman right? i understand his pain and i love him so much i wanna help him but sometimes he doesn't let me. I'm honestly lost guys any adv would help me rn I'd really appreciate it.
My boyfriend hits me everytime we have a heated argument and keeps telling me he'll change?
Add Opinion