116
votes

I know that you can disable git integration by using the Tools / Options dialog, but what I've noticed is that this setting doesn't seem to persist across sessions; i.e., as soon as close and reopen the solution, Git integration is enabled again. I'm guessing Visual Studio is seeing the .git folder in my solution file system tree.

There are a variety of Visual Studio 2013 plugins that behave incorrectly when the Git plug-in is enabled, I prefer to manage my source control at the command line, and I work on a few very large projects for which the Git integration introduces noticeable slowdowns in opening and working with the solution. I'd like to turn it off for good, as I simply don't use it or need it. Is this possible?

20
possibly useful: To fix it, I disabled the extension and then changed the source control using the Change Source Control command ‘Bind’ function - See more at: thereprogram.com/2013/04/18/visual-studio-tools-for-git/…Tom Kerr
That's the trick - in Visual Studio 2013, Git integration isn't provided as an extension, it's baked right in. Can't disable the extension, as there is no extension to disable. Boo!Bryan Porter
maybe you could automate it?klumsy
I could, but what trigger would I use to execute the automation? An extension that fires on load? Writing an extension to disable an OOB feature feels weird.Bryan Porter
My team had this issue too. I think the trick we used was to load a solution, disable git integration and then restart VS. You might also try installing SP 1.Ade Miller

20 Answers

90
votes

As you said you can disable the source control plugin going to:

  • Tools / Options
  • Check "Show all settings"
  • Source Control / Plug-in Selection
  • Set "Current source control plug-in" to "None"

Then, as Ade Miller says: Restart Visual Studio.

My Visual Studio was working really slow since the git plugging was enabled and I managed to disable it "persistently across sessions" following this steps.

Hope it helps.

53
votes

I had the same problem with Visual Studio 2015, where NoGit extension wasn't even allowed to install. I use the "open last solution on start-up" option so I thought that maybe this was somehow connected to the problem.

So I simply closed my solution before going to "Tools - Options - Source Control", then turned it off, restarted VS and - voila, SC stayed turned off! Hope it stays so in other solutions as well.

21
votes

For me, creating the repository with the following command fix the problem:

git init --separate-git-dir _git

Since it doesn't create a .git directory, only a .git file pointing to the real repository directory, e.g.:

gitdir: C:/tfs/ProjectName/Main/_git

Visual Studio (at least up to VS2015 Update 3, which is what I use) doesn't notice it!

This worked better than the environment variable stuff because Git Extensions (that I'm using) had problem supporting that, but dealt with the .git file pointing to a _git folder perfectly.

15
votes

One reason for the git SCC being re-enabled in VS2015 every time the IDE loads is CodeLens. Tools/Options/Text Editor/All Languages/CodeLens There's a checkbox for various activities involving TFVS and Git - having any of those git checkboxes checked will automatically enable the Git plugin if it thinks you're working on a git repo.

10
votes

For Visual Studio 2015, I found that CodeLens was re-enabling the Git Source Control plugin after restarting. Disabling CodeLens fixed this.

8
votes

NoGit Visual Studio extension handles this behavior.

Bonus: awesome description.

8
votes

It was pain on back for a week and I didn't know how did I start this source control service in VS2015. But got to know how to stop it. Here is the steps to decouple git/any source control with VS2019.

Go to VS-->Tools-->Options-->Source Control-->[Current Source Control Plug-in]

You get all the possible source control in your system and None option. If you choose None you are all set. Mine got fixed just after selecting None option , hit ok and restart the VS and no more source control.

7
votes

This worked for me in Visual Studio 2013 and 2015. Persists even though you close and re-open Visual Studio.

  1. Open the solution

  2. Go to Tools -> Options -> Source Control -> Set plugin to None

  3. Close Visual Studio and execute the command below with administrative rights.

move "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Git.Provider.dll" "C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Git.Provider.dll.bak"
6
votes

(Update: This answer now provides a fully working solution based my deeper understanding of GIT_DIR and GIT_WORK_TREE)

Summary: Git is flexible enough that you are able to move the .git directory to a place outside the work directory with the files checked out from tfs. This makes it then possible to have a 100% clean tfs checkout without any traces of git that visual studio is able to detect while still being able to operate it as a git repositiory. The key is to separate the git dir (git repository storage) and the work tree (your checked out source code).

Say that your source code is checked out in c:\work\someproject\tfscode and you already have run git init there, e.g. visual studio detects the c:\work\someproject\tfscode\.git directory and that causes trouble.

To make life more plessant do the following:

$ cd /cygdrive/c/work/someproject
$ mv tfscode/.git tfscode.git
$ echo export GIT_DIR=/cygdrive/c/work/someproject/tfscode.git >> env.sh
$ echo export GIT_WORK_TREE=/cygdrive/c/work/someproject/tfscode >> env.sh
$ source env.sh
$ cd tfscode
$ git status
...
$

This works perfectly with regards to visual studio since it then is completely ignorant of anything stored in git.

6
votes

Remove the Microsoft GitProvider from Visual Studio 2015

Link: http://researchaholic.com/2015/02/02/remove-the-microsoft-gitprovider-from-visual-studio-2013/

  1. Make sure Visual Studio is closed
  2. Open regedit
  3. Navigate to HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\14.0_Config\SourceControlProviders
  4. Delete 11b8e6d7-c08b-4385-b321-321078cdd1f8 In the details pane it should say GitProvider
  5. Open Visual Studio
4
votes

I managed to disable the built-in Visual Studio Git Provider by deleting all occurrences of those registry keys:

7FE30A77-37F9-4CF2-83DD-96B207028E1B

11b8e6d7-c08b-4385-b321-321078cdd1f8

2
votes

You need to close all VS solutions. start one, set Menu\tools\options\Source Control\Git-->None, close this solution when prompted. Now, when opening any other solution, the options stays "None".

2
votes

I'm also having problems with Git in Visual Studio but I think I finally have found a working solution. Until now I have used the trick of renaming the .git folder to _git and adding a textfile named .git containing the line "gitdir: _git". But since upgrading to VS2019 that doesn't work anymore.

I have tried lots of different solutions, but none have worked since I need Git for some projects and not for others. My problem project is using my company's Team Foundation Server for source control. But since I've lost code in bad merges made by TFS, I'm committing my changes to a local Git repo before updating or committing to TFS.

D:\Projects\TFS\.git Local git repo that VS shouldn't use.

D:\Projects\TFS\ProjectA\$tf TFS files that VS should use for ProjectA.

No matter how I tried, I could not get VS to use TFS for ProjectA when it found a .git folder in a parent folder. My solution is to move the .git folder to:

D:\Projects\TFS-GIT\.git

and create a directory junction to the ProjectA folder. Start an elevated command prompt and run:

mklink /J D:\Projects\TFS-GIT\ProjectA D:\Projects\TFS\ProjectA

Opening the D:\Projects\TFS\ProjectA\ProjectA.sln in Visual Studio, it won't find any .git folder and will connect to TFS like it should.

Running git commands from D:\Projects\TFS-GIT will use the same files as Visual Studio except that the .git folder is also available. TortoiseGit also works fine from this folder.

1
votes

VS2015 was sucking up 50% of my CPU when idle. I learned that disabling Git was the solution. Unfortunately disabling Git only to learn it automatically re-enables it.

In my case I actually wanted to use Git but not with 50% cpu usage.

As NoGit solution is only available for VS2013, you can instead download: Git Source Control Provider even if you don't use Git. My CPU usage is now 2,2% instead of 50% when idle.

0
votes

I had a hard time finding a solution for this, and made it after so many attempts, so I can't be precise. Create another local repository using GitHub Desktop in another folder. Done this, open Visual Studio without loading a project, now Team Explorer should show up both repositories. Select the new repository as you should do some operations, at this pont you can "remove" your old repository, since the new one is the "active" one. After doing this, I removed the .hidden .git* files from the former folder. Now opening the project does not cause the old repository to be re-created again. Hope this helps.

0
votes

This git extension hell slows up everything in IDE (VS 2015 in my case). I had to remove the entire TeamFoundation folder to get rid of this. The downside is that you will not be able to use Git and TeamFoundation in Visual Studio 2015. Note: Backup this folder elsewhere and restore it when needed.

To delete the folder i did this. The steps i followed to delete the right folder

The reason i did this is because , VS 2015 generates random folder name for the TeamFoundation extension, so my folder name could be different than yours.

-2
votes

Tools, Options, Source Control, Plug-in Selection, None

-4
votes

1) close solution and visual studio. 2) go to solution's directory and delete hidden git directory and 2 git text files. 3) open visual studio again. 4) goto tools -> options and source control. 5) select none. 6) restart visual studio. 7) open your solution. 8) goto tools -> options and source control again and select TFS. 9) in solution right click to select add source control to solution. 10) select tfs.

-5
votes

Set Tools\Options\Source Control back to TFS. Close Visual Studio 2015. Open the root folder of your source code. Delete folder named ".git". Restart.