Here's what I suggest:
Get your girlfriend a cute stuffed dog for Christmas along with a cute written promise that you're going to buy her a puppy.
Then research the breeds to see what dog would be best for the two of you. It may not be the breed you think it would've been!
Then find a reputable breeder of that breed. Do NOT go to a pet shop whatever you do, they do not have quality puppies. Also, be sure you know how to recognize a good breeder from a bad breeder (sometimes called a backyard breeder.) Backyard breeders are either only in it for the money OR are nice but unknowledgable; in either case, the puppies from backyard breeders will often have health problems. If you need help learning about how to recognize a good breeder, we would be glad to help!
Then pick out a puppy together with your girlfriend. It's best that she be part of the process, since she will have to live with the puppy.
Getting a puppy around an "exciting" day like Christmas or a birthday is not a good idea because it can be very stressful for the puppy, plus there are usually lots of things around that he can eat that are bad for him (like ribbons and tinsel.) I recommend getting a puppy a few weeks after the big event, so that it can be introduced to its new home in quiet.