我该如何移除msysgit右键菜单选项?

352

这可能不是最好的编程问题,但实际上,服务器故障的人并不精通git,所以我认为更适合这个听众。

我想切换到TortoiseGit或PortableGit,在我的shell中使用它们,但我却被这些烦人的上下文菜单选项所困扰。

我该如何让它们消失?我需要编写脚本来卸载它们吗?


OP删除的答案引用此URL作为解决方案。 - halfer
8个回答

623

64位Windows

从cmd.exe窗口运行以下命令:

cd "C:\Program Files (x86)\Git\git-cheetah"
regsvr32 /u git_shell_ext64.dll

32位Windows

从cmd.exe窗口运行以下命令:

cd "C:\Program Files\Git\git-cheetah"
regsvr32 /u git_shell_ext.dll

Windows 10

如果你使用的是Windows 10,且之前的方法没有起作用,尝试卸载并重新安装应用程序。但在安装过程中请小心,记得取消勾选Windows资源管理器集成

enter image description here


10
文件名为git_shell_ext64.dll,适用于像Windows 7这样的64位操作系统。 - Matt
2
对于较新版本的GitExtentions,请按照此处的说明进行操作。 - The Scrum Meister
3
谢谢您的侧记,@TheScrumMeister,不过读者们也应该记住GitExtensions并不是git-cheetah。 - JayC
2
我只需要一个名为GIT>>的单个菜单,它可以展开以显示当前在我的右键处理程序中的子菜单。我该怎么做? - Shankar Regmi
2
我在我的Git文件夹下找不到任何名称中带有“shell”的.dll文件。然而,从regedit中删除该值对我有效。 - Liggliluff
显示剩余2条评论

96

仅仅进行注册表移除 - 不做其他操作 - 在我的Win8.1上有效,适用于最新版本:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\Directory\background\shell\git_gui]

[-HKEY_CLASSES_ROOT\Directory\background\shell\git_shell]

[-HKEY_CLASSES_ROOT\Directory\Shell\git_gui]

[-HKEY_CLASSES_ROOT\Directory\Shell\git_shell]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_gui]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_shell]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_gui]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_shell]

1
在Windows 7上的一个奇怪情况中,这也是唯一有效的解决方案。 - Musa Haidari
1
适用于Win 10。 - Stanojkovic
1
我使用Chocolatey安装了Git,因此进行了静默安装并默认启用了Shell扩展。这对我来说是解决方案。注意:我只能找到“HKEY_CLASSES_ROOT \ Directory \ *”的Reg键;其他似乎不存在。 - Christopher Bull
在Win10(以及可能的其他操作系统)上,您无需重新启动或重新登录即可反映更改。 - Kyle
适用于Windows 11。 - Zaphiel
显示剩余2条评论

40

您也可以使用CCleaner禁用单个条目。

图片描述


1
即使在CCleaner中禁用了上下文菜单选项,但对我来说上下文菜单选项仍然存在... - hexicle
@hexicle 对我来说,在重新启动 explorer.exe 进程后它起作用了。 - Vlad Sabev
1
请注意,CCleaner曾经存在后门问题,对我来说,这是一个永远无法接受的大问题。 - inetphantom

20

在安装msysgit时,有一个名为“Windows资源管理器集成”的选项,您可以取消勾选此选项以避免它们显示。

您可以重新运行安装向导并取消勾选该选项,或者卸载并重新安装msysgit并在安装过程中取消勾选该选项。


7
你想要什么,跑马灯标签? - Alex Moore
很难说一样。他可能会在某个时间更新msysgit,那么为什么要在注册表中进行一些更改,你可能会忘记呢? - Alex Moore
@Alex:不需要手动修改注册表,我相信有工具可以为你完成这个任务。 - hasen
@hasen 但现在你必须安装另一个程序。为什么不只是更新呢?如果那个注册表更改在未来产生了一些意外后果,会影响到某些重要的东西怎么办?我认为我们在白费口舌。土豆、马铃薯,我们完成了同样的事情。我更喜欢我的方式。 - Alex Moore
9
不卸载的情况下,取消勾选该选项会在版本1.8.0中发出警告,提示不要卸载该选项。这是在回答之后的两年发生的事情,所以不能因为当时可能不是这样而进行贬低评价。 - CAD bloke
显示剩余3条评论

9

在Windows 10中,以上方法都对我没用。我找到的最佳解决方案是卸载应用程序,然后重新安装,并在安装过程中小心地取消选中Windows资源管理器集成

remove git remove click menu options


3
我可以证实,被接受的答案适用于 Windows 10 x64。 - ZorleQ
+1 这是我在 Windows 10 上的一台电脑上唯一有效的方法。尽管如此,被采纳的答案在另一台电脑上也起作用。 - user1843640
1
我也是(Win10 x64)。必须卸载它然后重新安装。 - AlbertoFdzM
这也是对我有效的方法(Win10 x64)。必须先卸载再重新安装。 - Tawani

7
我遇到了类似的问题,以上所有答案对我都无效,然后我在以下步骤中找到了解决方案。
第一步:在开始菜单中输入“regedit”。
第二步:运行注册表编辑器。
第三步:导航到“HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell”。
第四步:点击“shell”。
第五步:右键单击“Git Bash Here”,选择删除选项。
祝好运。

1
这对我起作用了。很可能是因为我的git是安装在用户级别而不是系统级别。 - rafee

4
在Windows 10 64位系统中,您需要执行以下两个步骤:
1. 删除注册表项:
HKEY_CLASSES_ROOT\Directory\background\shell\git_gui
HKEY_CLASSES_ROOT\Directory\background\shell\git_shell
HKEY_CLASSES_ROOT\Directory\Shell\git_gui
HKEY_CLASSES_ROOT\Directory\Shell\git_shell
2. 如果想要方便或自动化删除(例如在choco升级后使用),可以在管理员模式下运行PowerShell:
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT | Out-Null
Remove-Item -Path "HKCR:\Directory\shell\git_gui" -Recurse
Remove-Item -Path "HKCR:\Directory\shell\git_shell" -Recurse
Remove-Item -Path "HKCR:\Directory\Background\shell\git_gui" -Recurse
Remove-Item -Path "HKCR:\Directory\Background\shell\git_shell" -Recurse


2. 注销shell扩展dll 以删除其他菜单项 (GitExt clone..., GitExt Create New Repository, 等等):

regsvr32 /u "C:\Program Files (x86)\GitExtensions\GitExtensionsShellEx64.dll"

3
除dfkt所说的位置外,还有一个位置可以找到它,用于“库文件夹”:
HKEY_USERS\S-1-5-21-2901758233-4091616725-3820123586-1012\Software\Classes\LibraryFolder\background\shell\git_gui
HKEY_USERS\S-1-5-21-2901758233-4091616725-3820123586-1012\Software\Classes\LibraryFolder\background\shell\git_shell

在HKEY_USERS和Software之间的那个特定数字可能因人而异,因账户而异,请确保它适合您。

因此,修改后的完整注册表删除应为:

Windows Registry Editor Version 5.00

[-HKEY_CLASSES_ROOT\Directory\background\shell\git_gui]

[-HKEY_CLASSES_ROOT\Directory\background\shell\git_shell]

[-HKEY_CLASSES_ROOT\Directory\Shell\git_gui]

[-HKEY_CLASSES_ROOT\Directory\Shell\git_shell]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_gui]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_shell]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_gui]

[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_shell]

[-HKEY_USERS\S-1-5-21-2901758233-4091616725-3820123586-1012\Software\Classes\LibraryFolder\background\shell\git_gui]

[-HKEY_USERS\S-1-5-21-2901758233-4091616725-3820123586-1012\Software\Classes\LibraryFolder\background\shell\git_shell]

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