What should i do :(

I know in all of this, that I acted immaturely and am at fault as well. Just a disclaimer before I share my story. I have been physical with him before too but am much smaller than him and usually just a shove etc but did not lay a finger on him last night.

My husband and I are technically separated but still living together for our 1 year old at this time. His ex gf is 10 weeks pregnant (part of the reason we are separated but that's not important to the story other than you can see where my anger comes from).

Anyways, I got tipsy last night and was angry. I am always angry. I have been cheated on more times than I can even remember with him. So I got tipsy and my anger started boiling. I kicked the bricks around the fire pit he built me the weekend before I found out his ex was pregnant outside into the fire. Then I smashed my glass on the ground and came inside crying.

While my back was turned to him (I was walking inside and he followed) , he grabbed me by the shirt collar and shoved me over the side of the couch face first. Then flipped me over and grabbed the collar of my shirt around the neck. I don't know if he out his hands on my neck directly or just the shirt (I was tipsy so I don't have the clearest recollection) but he was hurting me and I have light marks below my collar bones on each side.

I know after that he pulled me over the back of the couch and shoved me into the wall still holding my shirt. I had my eyes closed (I was abused as a kid and prefer to keep my eyes closed so I can't see the person's eyes) so it's a lot of blank on what exactly happened next but i was on the floor. So he shoved me down and was yelling at me. I've found that if you don't fight back (from my childhood-my husband has never been physical like this with me before) and you stay quiet it ends quicker. Then he was on top of me shaking me even though I wasn't moving and on the floor already completely submissive.

Then he suddenly stopped, collapsed next to me and curled up into a ball sobbing and completely sorry. He was wailing and angry at himself and hurting. He started crying that he tries so hard and he can't be good enough for me and that I deserve better and how heartbroken he is. I've never heard someone sound so broken. I held him and told him it was okay and I love him (I do) and that he didn't hurt me (he didn't really just scared me) and that it's okay and let him cry it out.

Then we hung out and cuddled and watched our favorite show together. Later, we slept in my room (we have separate rooms) and ended up having sex.

This morning it's like nothing happened. He's my best friend. What do I do?

Most of the time we get along like best friends. Were military so if I move out I'd have to move back home to a different state and then our little one wouldn't be able to see him :( it's really important to me that they are close! We've been together since we were 17 and he was never angry until he joined the army. I'm hoping once he gets out, he'll be happier and less angry. Our other goal in living together was to work on ourselves more and then eventually hopefully come back together as a couple when we were ready.

I don't want to give up everything we've worked so hard to accomplish together and I don't want to lose the future we planned :( if I move out of the house, we cant come back as it's on base housing so it will be gone.