Pretty much agree with all advice given above^^ however I still don't advocate time outs really, because a dogs mind doesn't work like ours. When children are put in time out, it's so they have time to think about what they've done wrong and how to make it better, a dog just sits in time out because he was told to, lol. They don't really understand the concept of time or thinking about what they did wrong so to me it's kinda pointless.
I would first recommend exercise above all. He just sounds like an excited pup, Jackson gets like this too if he's been cooped for up for days without a walk. Before allowing your pup to play with your GF's... take him on a 30 min-1 hour walk beforehand to wear him out. You should see a big difference in his energy. For example, I take Jackson to my dads home with their 2 dogs where he often gets really hyper and excited... if I, beforehand, take him to the dog park for 2 hours, or a nice long walk, he goes into the house calmly and he still plays with the other dogs, he's just not as straightforward in his play.
Also, I definitely always like to recommend training behind exercise. Training is so key in having a fun and enjoyable dog to be around, even if its just the basic sit, stay, down, etc. Training can be fun, a wonderful bonding experience between a person and a dog, and it makes both lives a little easier. It also gives the dog mind a lot to think about and wears them out mentally.