I've been remote pairing for a while, and either use a Google Hangout or an RDP connection depending on latency and pair preference. RDP allows both parties to control the host, but seems to have higher bandwidth requirements and can lead to some other confusion when pairing (e.g. moving the mouse in the RDP window by mistake). The Hangout doesn't allow for remote control, which I prefer (it makes pair responsibilities very clear), and further, seems to share a screen more clearly than RDP.
I would not recommend trying to constantly push-pull to keep code in sync when remote pairing: you're cluttering the hell out of your repo and making "good" commits much harder to see.