<human>: I'm writing this with a throwaway. I love my bf and when things are good, they are really good; I feel so close to him, he seems perfect for me, and we have a lot of fun. But when things are bad they get really bad. 

He's done things that were very aggressive over the past 3 years (it started about 2 months into the relationship and the last time was over 6 months ago). He never hit me but he has pushed me to the ground, held me to the floor when arguing, threw things at me/at walls, punched things (including punching holes in walls), hit me with a pillow repeatedly until it broke open, snatched my phone from my hand and cracked it in two, and spit on me repeatedly (this is the worst one for me). 

When we argue, he yells and throws things. He calls me names and swears at me (but I don't do the same to him).  

His ex girlfriend also told me he slept with her twice while we've been together (I don't know if it's true or not, he flat out denied it).  

Writing all that down, it seems obvious that the relationship is not healthy and I shouldn't stay. But I do love him and enjoy being around him when things are good. Things have been perfect for about a month now, but I just can't forget all of the things he did.  

He says I'm just being insecure, sensitive, and overly emotional. He thinks I should just be able to forget all the bad things he did and to move on. He says he will never do anything like that again. I don't know what to do.

I'd really appreciate any advice. I'm not saying I'm perfect; I do have my insecurities and I can be passive aggressive and moody at times. I just don' t know if he's right and I'm being too sensitive about things that happened in the past. Thank you to anyone who takes the time to respond, I really appreciate it.

Can you succinctly summarize the text in 1-3 sentences?
<bot>: There have been some really bad parts in my relationship. Everything is good (for) now, but I can't forget the things that happened in the past.