Using Visual Studio 2013 with TFS and Git repositories on same project

With Visual Studio 2013 is a nightmare to keep a git repository but having TFS as a source control plugin activated when we load the solution. Every time we open the solution, by default Visual Studio will select the Git provider and ignore completely TFS (oh, irony…)

To solve that, I had to move out the .git folder to an external folder and point the git dir to the actual source code folder.

So an example is:

C:\Git\ (where I have my different .git repositories per project stored)
-- C:\Git\ProjectOne\.git
-- C:\Git\ProjectTwo\.git
C:\Code (where I have all projects source code)
-- C:\Code\ProjectOne\.git (this is a file, not a folder anymore)
-- C:\Code\ProjectTwo\.git (this is a file, not a folder anymore)

So, this .git file has to be generated as:

$ echo "gitdir: /git/ProjectOne/.git" > .git

After doing this, you can open Visual Studio and TFS will be selected by default. You still be able to run a “git status” or any git command as you always did before.