Constant thoughts of leaving

I’ve been with my boyfriend for 3 years. There’s been a lot of cheating and lies and drinking and disrespect on his part. I’ve become someone I don’t recognize and I’m constantly wondering if he’s truly who I want to be with. He has been showing me that he will change and is changing to become a better person. Our relationship has been decent lately but we fight a lot because of me and the feelings I hold towards him. I can tell he’s upset cause he’s trying to change and be better but no matter what he does, I’m just angry and have a lot of hatred built up in my heart for everything that he has done to me in the past. The most recent was in May. We got into a fight and angrily broke up with each other for the night, which happens often when we’d fight, and he went and slept with someone else that night. Only reason why I ever found out was because she tested positive for chlamydia and got ahold of his sister then came clean to me. He says that he was trying to find a way to tell me but didn’t want to ruin how good we were doing. I can’t trust him to go to the bar, I can’t trust him to hangout with people unless I’m there, I absolutely cannot trust him to stay in a different town and it sucks. I want to whole heartedly give him my trust but he’s ruined it so many times. Like I said, lately I’ve been the problem and just constantly angry and rude to him. When things are good between us, it’s AMAZING. But when it’s bad, its so so bad. I just don’t know what to do. Often I think about leaving and whether or not it would make me truly happy to leave. I think it will for a moment because I think of everything that has happened in the past, but then I think what if he’s actually changing? I just need some advice from ladies who have been there? Did your man put you through hell and then actually change for the better? Is there hope?