If you really don't want GitHub or TFS to host a remote repository which has a mapping relationship with your local repository.
You could use Git-TF for combining the local repository of Git with the integrated ALM of TFS.
Git-tf is a cross-platform bridge which allows developers to combine
the local repository capabilities of Git with the integrated
application lifecycle management tooling of Team Foundation Server.
You can use a Git repository locally, and when you're ready to, check
in code to TFS. You can even continue to take advantage of integration
between work items (such as bugs and requirements) in TFS when you
want to enable end-to-end traceability of the relationship between
your work and your code changes. This bridge is a cross-platform tool
built with Java, so it runs on many operating systems, including OS X,
Linux, and Windows. This means that you can use Git clients (such as
Xcode) and maintain the ability to check code into Team Foundation
Server.
You can also use Git-TFS which is more suitable for windows user. Also take a look at this link:What's the difference between git-tf and git-tfs?