I had the same issue as SF 5181845 in terms of wanting to use a public repo on GitHub as the starting point for my project whilst retaining the ability to merge into it any changes made in the public repo. This seems like a common scenario.
I started by using the Git command line utility to create an empty private repo on GitHub. I then cloned the public repo from github to a local repo on my machine and renamed its remote from 'origin' to 'upstream'. Next I added a second remote called 'origin' to the URL of my empty private repo before finally pushing my local repo to it. Everything seemed fine so I opened the solution using Visual Studio and set about making my changes which were duly committed to my local repo. Unfortunately, I hit problems when using Team Explorer to sync to my private repo on GitHub - i.e. pushing the outgoing commit. It failed as Team Explorer was attempting to push to the public repo (upstream) instead of my own private repo (origin).
Question: when you have two remotes how do you specify the one used by Team Explorer for outgoing commits?
I found a work-around by changing the Repository Settings in Team Explorer. I edited the upstream remote and set the push URL to my private repo on GitHub in place of the URL of the public one.
Additional: This is how my branches look in Team Explorer - see answer below