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

121

我知道你可以使用“工具/选项”对话框来禁用 git 集成,但我注意到这个设置似乎在会话间不会被保留;也就是说,一旦关闭并重新打开解决方案,Git 集成就又启用了。 我猜测 Visual Studio 是在我的解决方案文件系统树中看到了 .git 文件夹。

当 Git 插件启用时,有许多 Visual Studio 2013 插件会表现出不正确的行为。我更喜欢在命令行下管理我的源代码控制,并且我正在处理几个非常大的项目,Git 集成在打开和处理解决方案时会引入明显的减速。我想永久关闭它,因为我根本不使用或需要它。这可能吗?


1
可能有用:为了解决这个问题,我禁用了扩展,并使用“绑定”功能更改了源代码控制。更多信息请参见:http://www.thereprogram.com/2013/04/18/visual-studio-tools-for-git/#sthash.rEzBZSMo.dpuf - Tom Kerr
1
这就是诀窍 - 在Visual Studio 2013中,Git集成不是作为扩展提供的,而是直接内置在其中。无法禁用该扩展,因为没有要禁用的扩展。糟糕! - Bryan Porter
也许你可以自动化它? - klumsy
我可以,但是我应该使用什么触发器来执行自动化?一个在加载时触发的扩展程序吗?编写一个禁用一个OOB功能的扩展程序感觉很奇怪。 - Bryan Porter
1
我的团队也遇到了这个问题。我认为我们使用的技巧是加载一个解决方案,禁用 git 集成,然后重新启动 VS。您也可以尝试安装 SP 1。 - Ade Miller
显示剩余6条评论
20个回答

96

如您所说,您可以通过以下步骤禁用源代码控制插件:

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

然后,按照 Ade Miller 的建议:重新启动 Visual Studio。

自从启用git插件以来,我的Visual Studio运行速度非常缓慢,我成功地通过这些步骤“持续跨会话”地禁用了它。

希望对您有所帮助。


45
我发现在重新打开解决方案时,VS会重新启用GIT。另外,下面提到的NoGit插件不起作用。嗯。 - mackenir
我有同样的问题。每次重新启动VS时,它都会重新启用GIT集成。请注意,我已经按照上述描述禁用了它数十次。(但它仍然会回来) - Venryx
1
它也重新启用了我的。显然有人编写了一个扩展程序,在启动时禁用它。太疯狂了!https://dev59.com/xX3aa4cB1Zd3GeqPgrLt。此链接中的另一个黑客方法是从提供程序dll中删除Everyone的权限:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Microsoft.TeamFoundation.Git.Provider.dll - Sonic Soul
3
我发现打开“团队资源管理器”窗口后,选项又变回启用了。所以我只是关闭了那个窗口并将选项改回“无”。希望 Visual Studio 不会再试图在这方面“帮助”我了。 - Sean
没有加载任何解决方案,我把源代码控制插件设置从Git改回了None。然后我重新启动了Visual Studio(仍然没有解决方案),检查了一下设置,现在变成了Visual Studio团队基础服务器。我再次将其设置为None并重新启动VS,这次似乎成功了。 - Adrian McCarthy
显示剩余2条评论

55

我也遇到了与Visual Studio 2015有关的同样问题,即无法安装NoGit扩展。我使用“启动时打开上次的解决方案”选项,所以我认为这可能与问题有关。

所以我简单地在前往“工具-选项-源代码控制”之前关闭了我的解决方案然后关闭了它,并重新启动了VS - voila,SC保持关闭状态!希望在其他解决方案中也能保持这样。


2
一千遍这样做。无需注册表修改,无需自定义扩展程序,这就是解决方法。谢谢! - driis
1
我必须将此与另一件事结合起来:我更新了我的VisualStudio开始菜单快捷方式,以包括此命令行标志:/ResetSettings "C:\Users\myuserid\Documents\Visual Studio 2015\Settings\CurrentSettings.vssettings"。根据命令行参考,此设置“恢复IDE的默认设置,可选择重置为指定的VSSettings文件。”这似乎确保我的所需设置始终得到应用。 - mcw
4
谢谢!这对我有用。另外需要注意的是,在执行此操作之前,请确保关闭右侧(靠近“解决方案资源管理器”旁边)的Team Viewer选项卡,否则如果您单击它,它将自动重新启用。 - ForOhFor
2
请确保在 VS 崩溃后杀死挂起的 devenv.exe 进程,否则你可能会一遍又一遍地重复这个过程,但当它成功时,你会感到非常高兴,而且不需要任何注册表修改! - Atters
这不会也破坏 TFS 集成吗?也就是说,我认为最初的目标是关闭 git。我在这里错过了什么? - ruffin
这对我来说非常好,使用最新版本的VS2019,谢谢! - classicSchmosby98

21

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

git init --separate-git-dir _git

因为它不创建一个 .git 目录,而是只创建一个指向实际存储库目录的 .git 文件,例如:

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

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

这比环境变量更好,因为我使用的Git Extensions有问题支持它,但是完美地处理了指向_git文件夹的.git文件。


2
太棒了,绕过了这个问题!感谢上帝,VS2013没有实现读取此.git“与文件系统无关的Git符号链接到存储库”,否则我们将遇到相同的问题。 - KurzedMetal
2
这确实是整个答案链中存在的最简单的解决方案。 - Tarik
1
非常感谢您的提示!由于“NoGit”Visual Studio扩展程序不支持VS 2017,这是我阻止VS 2017“git-monitoring”的唯一方法 :-) 谢谢! - Ruslan Garipov
@KurzedMetal 他们竟然做到了(在VS 2017中):( - Marc.2377
1
@Marc.2377,他们是否在VS2017中添加了对检测.git 文件的支持?这对我来说将是一个坏消息,在不久的将来(当我获得笔记本电脑和VS升级时)。到目前为止,我仍在使用VS2015,并且这对我来说一直很完美。 - KurzedMetal
显示剩余3条评论

15

每次打开IDE时,Git SCC被重新启用的一个原因是CodeLens。 工具/选项/文本编辑器/所有语言/CodeLens 有一个复选框涉及TFVS和Git,如果勾选了其中任何一个Git复选框,并且它认为您正在使用git存储库,则会自动启用Git插件。


适用于我个人的工作解决方案,不建议从源代码控制中删除该解决方案或损坏VS安装。 - Evren Kuzucuoglu
1
这是正确的解决方案。 - Juan Pablo Califano
这非常重要,因为我发现Visual Studio 2017覆盖了禁用源代码控制的琐碎事情。但是似乎即使在那之后,VS 2017仍会创建一个.vs文件夹。 - Royi
1
这似乎是提供的最直接、永久、干净的解决方案 - 这应该是被接受的答案,并且它也适用于VS 2019。 - T.S
为了使这成为一个完整的解决方案,您可能需要包括第二步,即在禁用 CodeLens 后实际上禁用 Git 插件。 - bugged87

10

对于 Visual Studio 2015,我发现每次重新启动后,CodeLens 会重新启用 Git 源代码控制插件。禁用 CodeLens 可以解决这个问题。


2
在Visual Studio 2017中禁用GIT非常重要。干得好! - Royi

8

这个方法适用于Visual Studio 2013和2015。即使关闭并重新打开Visual Studio,设置仍然有效。

  1. 打开解决方案

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

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

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"

VS 2015 更新1:此后 MSFT TFS 提供程序无法工作 - Ruslan Garipov
1
或者你可以像 @John Brett 建议的那样禁用 CodeLens。 - mike
VS2022似乎将teamfoundation扩展文件夹移动到其他位置了。 - undefined

8

很遗憾,它无法再与VS2013 SP3一起使用了。 - thumbmunkeys
我正在使用VS 2013 Update 4,它对我仍然很好用。 - mxmissile
我把Git集成和Codelens中显示的Git信息搞混了...感谢您的澄清! - thumbmunkeys
3
不支持2015年。 - Ben Wilde
@BenWilde 新版本兼容VS 2015 Update 1(在此处获取:https://github.com/hmemcpy/nogit) - Ruslan Garipov
1
hmemcpy版本似乎已经不存在了,但原始扩展现在支持VS 2017。不幸的是,似乎很难使其支持VS2019:https://github.com/markrendle/nogit/issues/8 - Anlo

7

我的背疼了一周,我不知道如何在VS2015中启动这个源代码控制服务。但是我知道如何停止它。下面是解除git / 任何源代码与VS2019耦合的步骤。

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

您将获得系统中所有可能的源代码控制以及无选项。 如果选择“无”,则可以完成设置。 我选择了“无”选项后问题得到了解决,单击“确定”并重新启动VS即可消除源代码控制的影响。


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 中的任何内容。


顺便提一下,[tag:git-tf] 自然不喜欢 cygwin 路径,因此如果您计划使用 git tf,请使用 GIT_...=c:/work/... - hlovdal
这很好,但我不得不使用c:/work/...样式的路径,而不是\c\work..样式。 - zumalifeguard

6

1
此答案改进 - 应用以下reg文件 Windows Registry Editor Version 5.00 [-HKEY_CURRENT_USER\SOFTWARE\Microsoft\VisualStudio\14.0_Config\SourceControlProviders{11b8e6d7-c08b-4385-b321-321078cdd1f8}] - Ivan Shakhov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接