如何永久禁用Visual Studio 2013中的Git集成?


113

我知道您可以通过使用“工具/选项”对话框来禁用git集成,但是我注意到的是,该设置似乎并没有在所有会话中保持不变;即,一旦关闭并重新打开解决方案,便会再次启用Git集成。我猜Visual Studio在解决方案文件系统树中看到了.git文件夹。

启用Git插件时,有许多Visual Studio 2013插件的行为不正确,我更喜欢在命令行上管理源代码控制,并且我从事一些非常大的项目,这些项目的Git集成带来了明显的放缓在打开和使用解决方案。我想永久关闭它,因为我根本不使用它或不需要它。这可能吗?


1
可能有用:要解决此问题,我禁用了扩展名,然后使用“更改源代码控制”命令的“绑定”功能更改了源代码控制-详情请参见:thereprogram.com/2013/04/18/visual-studio-tools-for- git /…
Tom Kerr 2014年

1
这就是窍门-在Visual Studio 2013中,Git集成未作为扩展提供,而是直接嵌入其中。无法禁用该扩展,因为没有要禁用的扩展。!
布莱恩·波特

也许您可以自动化?
klumsy 2014年

我可以,但是我将使用什么触发器来执行自动化?在负载上触发的扩展程序?编写扩展以禁用OOB功能感觉很奇怪。
Bryan Porter

1
我的团队也遇到了这个问题。我认为我们使用的技巧是加载解决方案,禁用git集成,然后重新启动VS。您也可以尝试安装SP 1
埃德·米勒

Answers:


90

如您所说,您可以禁用源代码管理插件:

  • 工具/选项
  • 选中“显示所有设置”
  • 源代码控制/插件选择
  • 将“当前源代码管理插件”设置为“无”

然后,如Ade Miller所说:重新启动Visual Studio。

自从启用git插入功能以来,我的Visual Studio的运行速度就非常缓慢,并且按照此步骤,我设法“在整个会话中永久禁用”它。

希望能帮助到你。


42
我发现VS在重新打开解决方案时只是重新启用了GIT。另外,下面提到的NoGit扩展也不起作用。嗯
Mackenir

我也有同样的问题。VS只需在VS重新启动时重新启用GIT集成。请注意,我已经如上所述多次禁用它。(它不断回来)
Venryx

1
它也为我重新启用了它。显然有人写了一个扩展名,在启动时将其禁用。疯!stackoverflow.com/questions/22459959/…。此链接中的另一个黑客是从所有人中删除提供程序dll的权限:C:\ Program Files(x86)\ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Microsoft.TeamFoundation.Git.Provider。 dll
Sonic Soul

3
我发现打开“团队资源管理器”窗口为我重新启用了它。因此,我只是关闭了该窗口,然后将选项重新设置为“无”。希望VS不会在这一方面再次尝试“帮助”我。
肖恩

没有加载任何解决方案时,我将源代码控制插件设置从Git改回了None。然后,我重新启动了Visual Studio(仍为w / oa解决方案)并检查了设置,现在它是Visual Studio Team Foundation Server。我再次将其设置回None,然后再次重新启动VS,这次似乎卡住了。
阿德里安·麦卡锡

52

我在Visual Studio 2015中遇到了相同的问题,在该问题中甚至不允许安装NoGit扩展。我使用“启动时打开最后一个解决方案”选项,因此我认为这可能与问题有关。

因此,在进入“工具-选项-源代码控制”之前,我只是关闭了解决方案然后将其关闭,重新启动VS,并且-瞧,SC保持关闭状态!希望它在其他解决方案中也是如此。


2
这个的一千倍。没有注册表黑客,没有自定义扩展名,这有效。谢谢 !
driis

1
我必须将其与另一件事结合起来:我更新了VisualStudio开始菜单快捷方式,以包含此命令行标志:/ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings"。根据命令行参考,此设置“恢复IDE的默认设置,还可以选择重置为指定的VSSettings文件”。这似乎可以确保始终应用我想要的设置。
mcw 2015年

4
谢谢!这对我有用。另一个注意事项-在执行此操作之前,请确保关闭右侧的“团队查看器”选项卡(在“解决方案资源管理器”旁边),否则,如果单击它,它将自动重新启用自身。
ForOhFor

2
确保您杀死了在VS崩溃后仍然徘徊的逃逸devenv.exe进程,至少留下了一个CPU固定,否则您可以一遍又一遍地执行,并且不会卡死。但是非常高兴,而且不需要注册表破解!
Atters

19

对我来说,使用以下命令创建存储库可解决此问题:

git init --separate-git-dir _git

因为它不创建一个.git 目录,只有一个.git 文件指向真实的版本库目录,例如:

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

Visual Studio(至少我使用的是VS2015 Update 3之前的版本)没有注意到它!

这比环境变量更好,因为(我正在使用的)Git Extensions在支持该功能方面存在问题,但.git可以_git完美地处理指向文件夹的文件。


同意,我也不想弄乱环境变量。这很好。
kaveman

我要补充一点,上面有一个轻微的错别字,选项是--separate-git-dir
kaveman

2
很棒的解决方法!谢谢上帝,VS2013没有实现读取此.git“到存储库的文件系统不可知的Git符号链接”,否则我们将发现同样的问题。
KurzedMetal,2015年

2
这确实是整个答案链中最简单的解决方案。
塔里克

1
非常感谢您的提示!由于`NoGit'Visual Studio扩展不适用于VS 2017,因此这是我阻止VS 2017停止“ git-monitoring”的唯一方法:-)谢谢!👍
鲁斯兰加里波夫

11

每次IDE加载时,在VS2015中重新启用git SCC的原因之一是CodeLens。工具/选项/文本编辑器/所有语言/ CodeLens有一个涉及TFVS和Git的各种活动的复选框-选中所有git复选框后,如果它认为您正在使用git repo,则会自动启用Git插件。


对我而言,有效的答案并不建议从源代码管理中删除解决方案,也不建议损坏VS安装。
Evren Kuzucuoglu

这是严格的解决方案。
Juan Pablo Califano

这一点非常重要,因为我看到Visual Studio 2017覆盖了禁用源代码控制这一琐碎的事情。但是似乎在VS 2017之后仍会创建一个.vs文件夹。
罗伊

8

NoGit Visual Studio扩展可处理此行为。

奖励:很棒的描述。


不幸的是,它不适用于VS2013 SP3
thumbmunkeys 2015年

我正在使用VS 2013 Update 4,对我来说仍然可以正常工作。
mxmissile 2015年

我将git集成与codelens中显示的git信息混淆了……感谢您的澄清!
thumbmunkeys 2015年

3
也不支持2015年
Ben Wilde

@BenWilde新版本可用于VS 2015 Update 1(在此处获取:github.com/hmemcpy/nogit
Ruslan Garipov 2016年

8

对于Visual Studio 2015,我发现CodeLens在重新启动后重新启用了Git Source Control插件。禁用CodeLens可以解决此问题。


这对于在Visual Studio 2017中禁用GIT很重要。
罗伊(Royi)

6

(更新:此答案现在基于我对GIT_DIR和GIT_WORK_TREE的更深入了解而提供了一个完全有效的解决方案)

简介:Git足够灵活,您可以移动 .git使用从tfs中检出的文件目录到工作目录之外的地方。这样就可以进行100%干净的tfs检出,而Visual Studio却无法检测到任何git痕迹,同时仍然可以将其作为git存储库进行操作。关键是将git dir(git存储库存储)和工作树(您签出的源代码)分开。

假设您的源代码已签出c:\work\someproject\tfscode并且您已经在git init此处运行,例如,Visual Studio检测到c:\work\someproject\tfscode\.git目录并造成麻烦。

要使生活更加幸福,请执行以下操作:

$ 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
...
$

这对于Visual Studio来说是完美的,因为它完全不了解git中存储的任何内容。


顺便说一句,git-tf自然不喜欢cygwin路径,因此,GIT_...=c:/work/...如果您打算使用git tf,请使用。
2014年

这很棒,但是我想使用c:/ work / ...样式路径而不是\ c \ work \ ..样式。
zumalifeguard

6

这在Visual Studio 2013和2015中对我有用。即使关闭并重新打开Visual Studio,仍会持续。

  1. 打开解决方案

  2. 转到工具->选项->源代码控制->将插件设置为无

  3. 关闭Visual Studio并以管理权限执行以下命令。

移动“ 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”

VS 2015 Update 1:此后,MSFT TFS提供程序不起作用
Ruslan Garipov 2016年

...或者您可以像@John Brett建议的那样禁用CodeLens。
mike

6

从Visual Studio 2015中删除Microsoft GitProvider

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

  1. 确保Visual Studio已关闭
  2. 打开注册表
  3. 导航到HKEY_CURRENT_USER \ Software \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders
  4. 删除11b8e6d7-c08b-4385-b321-321078cdd1f8在详细信息窗格中应显示GitProvider
  5. 打开Visual Studio

1
此答案的改进-应用以下reg文件Windows注册表编辑器版本5.00 [-HKEY_CURRENT_USER \ SOFTWARE \ Microsoft \ VisualStudio \ 14.0_Config \ SourceControlProviders \ {11b8e6d7-c08b-4385-b321-321078cdd1f8}]
Ivan Shakhov

4

我设法通过删除所有出现的注册表项来禁用内置的Visual Studio Git Provider:

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

11b8e6d7-c08b-4385-b321-321078cdd1f8


1
这对我有用!谢谢!但是仍然有一个问题:如果最终我将更新VS(进行次要或主要更新),是否需要再次删除密钥?
Ruslan Garipov '16

4

要安装,我更喜欢手动将.vsix扩展名更改为.zip,因此您可以右键单击并解压缩文件。然后,您要做的就是将新提取的文件夹放入用户的应用程序数据文件夹(%appdata%\ Local \ Microsoft \ VisualStudio \ {version} \ Extensions)中。然后重新启动Visual Studio,打开“工具”->“扩展和更新...”,然后找到“ NoGit”并启用它,然后再次重新启动。
本·王尔德

4

一个星期的背痛,我不知道如何在VS2015中启动此源代码控制服务。但是要知道如何阻止它。这是将git /任何源代码控制与VS2019分离的步骤。

转到VS->工具->选项->源代码控制-> [当前源代码控制插件]

您会在系统中获得所有可能的源代码管理,并且没有选项。如果选择“无”,则一切就绪。在选择None选项后,我的问题得到了解决,点击确定,重新启动VS,并且不再进行任何源代码控制。


3

您需要关闭所有VS解决方案。首先,设置Menu \ tools \ options \ Source Control \ Git-> None,在出现提示时关闭此解决方案。现在,当打开任何其他解决方案时,选项保持为“无”。


1

闲置时,VS2015占用了我50%的CPU。我了解到禁用Git是解决方案。不幸的是,禁用Git只是为了学习它会自动重新启用它。

就我而言,我实际上想使用Git,但不使用50%的CPU。

由于NoGit解决方案仅适用于VS2013,因此您可以下载: Git源代码管理提供程序,即使您不使用Git。我的CPU使用率现在为2.2%,而不是闲置时的50%。


1

我在Visual Studio中也遇到了Git问题,但我想我终于找到了一个可行的解决方案。到目前为止,我已经使用了将.git文件夹重命名为_git并添加一个名为.git的文本文件的技巧,其中包含行“ gitdir:_git”。但是自从升级到VS2019之后,它不再起作用了。

我尝试了很多不同的解决方案,但是没有一个奏效,因为我需要在某些项目中使用Git,而在其他项目中则不需要。我的问题项目是使用公司的Team Foundation Server进行源代码控制。但是由于在TFS进行的错误合并中丢失了代码,因此我将更改提交到本地Git存储库,然后再更新或提交到TFS。

D:\Projects\TFS\.git VS不应该使用的本地git repo。

D:\Projects\TFS\ProjectA\$tf VS应该用于ProjectA的TFS文件。

无论如何尝试,当它在父文件夹中找到一个.git文件夹时,我都无法让VS将TFS用于ProjectA。我的解决方案是将.git文件夹移至:

D:\Projects\TFS-GIT\.git

并创建到ProjectA文件夹的目录连接。启动提升权限的命令提示符并运行:

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

D:\Projects\TFS\ProjectA\ProjectA.sln在Visual Studio中打开,它将找不到任何.git文件夹,并且会像应该的那样连接到TFS。

从中运行git命令D:\Projects\TFS-GIT将使用与Visual Studio相同的文件,除了.git文件夹也可用。TortoiseGit也可以从该文件夹正常工作。


0

我为此很难找到解决方案,并且经过多次尝试后才做出了解决方案,所以我不太精确。使用GitHub Desktop在另一个文件夹中创建另一个本地存储库。完成此操作后,在不加载项目的情况下打开Visual Studio,现在Team Explorer应该显示两个存储库。选择新的存储库,因为您应该执行一些操作,在这一点,您可以“删除”旧的存储库,因为新的存储库是“活动的”存储库。完成此操作后,我从以前的文件夹中删除了.hidden .git *文件。现在打开项目不会导致重新创建旧的存储库。希望这可以帮助。


0

太疯狂了,但对我有用的清空我的回收站(其中包含我的解决方案不需要的.git文件夹)。

我还是不敢相信...


0

重命名“ C:\ Program Files(x86)\ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation”

VS只会显示一次错误,并且可以正常工作。


0

这个git扩展地狱减慢了IDE中的所有速度(以我为例,VS 2015)。我必须删除整个TeamFoundation文件夹才能摆脱这种情况。缺点是您将无法在Visual Studio 2015中使用Git和TeamFoundation。注意:请将该文件夹备份到其他位置,并在需要时将其还原。

要删除文件夹,我这样做。 我执行的删除正确文件夹的步骤

我这样做的原因是因为VS 2015为TeamFoundation扩展生成随机文件夹名称,因此我的文件夹名称可能与您的文件夹名称不同。


-2

工具,选项,源代码管理,插件选择,无


8
Visual Studio 2013将不会保留此更改。下次打开解决方案时,如果它检测到.git目录,它将自动重新选择Git插件。如果解决方案已经绑定到TFVC,它将甚至执行此操作。
2014年

-4

1)关闭解决方案和Visual Studio。2)转到解决方案的目录,并删除隐藏的git目录和2个git文本文件。3)再次打开Visual Studio。4)转到工具->选项和源代码控制。5)不选择。6)重启Visual Studio。7)打开您的解决方案。8)转到工具->选项和源代码控制,然后选择TFS。9)在解决方案中,右键单击以选择将源控件添加到解决方案。10)选择tfs。


他们不想使用TFS,并且他们当然也不想删除.git文件夹,因为它将删除整个本地提交历史记录。他们要求的是如何防止VS使用.git文件夹中的信息,而不是如何清除该文件夹。
quetzalcoatl

-5

将工具\选项\源代码控制设置回TFS。关闭Visual Studio2015。打开源代码的根文件夹。 删除名为“ .git”的文件夹。 重新开始。


4
听起来有点像您要求操作人员从git中完全删除文件夹。“我更喜欢在命令行上管理源代码控制”似乎表明这不是他的解决方案。
Evren Kuzucuoglu
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.