How can I forgive him?

Back in November  my boyfriend and I got into an argument. I thought he was using drugs so I kicked him out. Looking through his phone I realized he was talking to his ex fiancé (mind you I just lost our first baby at 14 weeks in October) not only was he talking to her but he messaged another female to come over and talk. We made up and I had to forget everything happened! In February we found out I was pregnant. Later that month I found out he went to his ex fiancé house to talk to her father about redoing his roof for him. Or at least that is what I was told. In April he proposed and in May he left because I didn't approve of his "friends" he got arrested for stupid shit. I've been therefor him the entire time he has been in jail. But every time I try and explain to him that I am upset Or why I am upset it's always an excuse or another lie or turned around on how tough his life is. Tonight he apologized for everything and finally told me the truth about everything and at the end of our conversation he told me that he is sorry for everything and he understands if I want to leave him and what not but he wants to see his child and he refuses to get my initials covered up (apparently he got a jail house tattoo of my initials and the date he proposed) I would love to forgive him I really would but every time I think about it all I can remember is how he talked to his ex when he couldn't talk to me at work. When he would jump for his "friends" that are not there for him know. That I would always be put last... I love him I do we have been together for so long but I just don't know what to do anymore. I feel like he hurt me beyond repair especially because I think him and his ex were sleeping together even though he says no. And it sucks because now I feel like I need to be more like her and that has never been me! Wahhh! I'm sorry I just needed to vent I guess