如何从“文档”菜单上下文中删除git?

48

我有一个小问题:如何从我的“文档”目录的上下文菜单中删除“Git Bash Here”和“Git GUI Here”?

我尝试过:

  1. 重新安装未选中选项的 Git-2.15.0-64-bit。
  2. 从以下位置删除密钥:
[-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中我没有git_gui和git_shell这两个键。

删除这些键后,结果不错——Git不会出现在我的大多数目录中,但仍会出现在我的文档中(我将所有项目从NetBeans到Android Studio都放在那里)。

有人遇到类似的问题吗?能有人帮忙吗?


1
这个有帮助吗?(显然需要反过来)https://dev59.com/LmAf5IYBdhLWcg3wsUXT - JDB
1
这不是一个编程问题。请尝试使用superuser.com。 - MrJLP
这个答案很有效(许多人都这么说):https://dev59.com/0HE95IYBdhLWcg3wGZ9_#35530299 - JinSnow
8个回答

59

我想我找到了其他相关的参考资料。我已经将我的删除了。

HKEY_CLASSES_ROOT\LibraryFolder\background\shell

根据https://stackoverflow.com/a/32490883/4906348,很简单,我从未想过。你应该看到像这样。

The Git Bash here on Library Background

从这个Before Registry delete到这个。它可以工作After Registry Delete

注意
对于Windows 10,可能还有在HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell和/或HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_shell中的键需要删除。


6
谢谢。关于当前版本(2.16.2.windows.1 在 Win10 x64上),还有在 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell 中的键(Bash 和可能的 GUI),也需要被删除。 - clicheName
是的,我认为在注册表中的搜索功能直到遇到像这样的问题才会正常工作! - Benyamin Limanto
这就是我正在寻找的答案!谢谢! - Dawid Dave Kosiński
1
我在这里也找到了git_shellgit_gui计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\git_shell - Anthony

50

你需要删除这些密钥:

HKEY_CLASSES_ROOT\Directory\shell\git_gui

HKEY_CLASSES_ROOT\Directory\shell\git_shell

HKEY_CLASSES_ROOT\LibraryFolder\background\shell\git_gui

HKEY_CLASSES_ROOT\LibraryFolder\background\shell\git_shell

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_gui

HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_shell

本方法适用于Windows 10.1803和Git 2.25.0(其他Windows/Git版本可能会有所不同)。


1
谢谢,对我有用。如果没有HKEY_CLASSES_ROOT\LibraryFolder\background\shell\,它就不存在了。 - Nikolay Sergeevich
1
还有 HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\background\shell\git_guiHKEY_CURRENT_USER\SOFTWARE\Classes\Directory\background\shell\git_shell(适用于我)。 - CrazyIvan1974

21

你可以使用PowerShell来运行它,以简化操作并自动化处理。因为你必须从HKLM中删除密钥,所以必须以提升的权限运行。如果要将其保存在PS1脚本中,请使用"#Requires -RunAsAdministrator"。

#Requires -RunAsAdministrator
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT -ErrorAction SilentlyContinue

$path = "HKLM:\SOFTWARE\Classes\Directory\background\shell\git*
HKLM:\SOFTWARE\Classes\Directory\shell\git*
HKLM:\SOFTWARE\Classes\LibraryFolder\background\shell\git*
HKCR:\Directory\Background\shell\git*
HKCR:\Directory\shell\git*
HKCR:\LibraryFolder\background\shell\git*" -split '\n'

Remove-Item -Confirm:$false -Recurse -Path $path

这个非常好用,正是我所需要的。我使用“choco install git.install”来进行Windows“自动安装”脚本。这可以在安装后清理不需要的东西。 - arberg
8
尝试运行以下命令:CHOCO install git.install --params "/NoShellIntegration",这将按照您想要的方式安装git。 - PollusB
1
哦,我不知道 choco 可以有自定义的软件包参数。谢谢,它运行得很好:choco install git.install --params /NoShellIntegration - arberg
不幸的是,PowerShell脚本对我没有任何作用 :-/ 但感谢@PollusB的提示,这个方法完美地解决了问题! - skjerns
@skjerns。你是否使用管理员权限运行了脚本? - PollusB
1
@arberg CHOCO唯一的问题是:当你升级GIT时,它不会记住参数。即使你启用了[x] useRememberedArgumentsForUpgrades。因此,在升级后,我的脚本仍然有意义。 - PollusB

2
我个人更喜欢采用非破坏性的方法来解决问题,因为这样做会更容易撤销。下面是一种这样的方法:
  • Open regedit.exe
  • Find the key
    HKEY_CLASSES_ROOT\Directory\shell\git_shell
    
  • Add a new DWORD (32-bit Value) named HideBasedOnVelocityId
  • Assign it a value of 006698a6 (hex)

应该看起来像这样

重复以下步骤:

  • HKEY_CLASSES_ROOT\Directory\shell\git_gui
    
  • HKEY_CLASSES_ROOT\LibraryFolder\background\shell\git_shell
    
  • HKEY_CLASSES_ROOT\LibraryFolder\background\shell\git_gui
    
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_shell
    
  • HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_gui
    

并且它应该从上下文菜单中消失。


嗯,HideBasedOnVelocityId是做什么的?这个值提供了什么?你有发现这个值的来源吗?为什么会优先选择这个而不是已被社区验证过的答案呢? - Jeremy Caney
1
我目前正在调查HideBasedOnVelocityId的确切作用。我注意到它可以在多个上下文菜单添加中使用。例如,我也用它从上下文菜单中删除了VSC。至于为什么它更受欢迎。我个人更喜欢一种非破坏性的解决问题的方法。这样更容易撤销。但是我已经注意到它的一个缺陷。如果您右键单击一个文件夹,则不会从上下文菜单中隐藏该选项,但如果您在文件夹内右键单击,则会起作用。目前正在研究原因以及如何修复它。 - BromTeque
@JeremyCaney 我找不到任何关于“HideBasedOnVelocityId”的文档,所以我暂时放弃了,因为我缺乏关键字/查找知识。我的观点仍然存在,我更喜欢一个非破坏性、易于撤消的解决方案,而不是删除注册表条目。我已经找出如何从右键单击文件夹时的上下文菜单中删除git,而不是在文件夹内部,并更新了我的解决方案。我的解决方案也更适用于Windows 10。而原始解决方案则建议删除相关的注册表条目。 - BromTeque
关于文档的情况很不幸!虽然我想,很多注册表键仍然没有得到很好的记录。你是怎么发现这个问题的?我已经将你评论中相关的部分提升到了你的回答中。因为听起来你的编辑解决了你之前提到的缺陷,所以我没有包含那部分内容。感谢你对此进行跟进,并在回答中付出如此用心。 - Jeremy Caney
1
我在寻找从上下文菜单中删除VSC的方法时找到了解决方案。链接 我尝试将其应用于Git,因为我找到的所有解决方案都只是机械地重复“删除这个,删除那个”,而它起作用了。 - BromTeque
我已经编写了一个自动执行该过程的脚本。我不确定发布自制脚本的规则和StackOverflow礼仪,因此我在这里发布它,而不是编辑我的答案。脚本可以在此处找到要保存文件,请右键单击“Raw”,然后选择“链接另存为...”,将其保存为“.reg”文件。请自行承担风险!我对您的行为以及您如何使用此脚本不负任何责任! - BromTeque

1

虽然有点晚了,但是可能会对某些人有用。我不需要在注册表编辑器或其他地方搞什么。对我有用的方法只是:

  1. 正常卸载 git(从“设置>应用程序”或“控制面板”中)。
  2. 重新启动电脑并再次安装 git。
  3. 在安装过程中,取消选中“Windows资源管理器集成”。

我在 Windows 10 上使用 git version 2.38.1


0

根据您的Windows版本,您在注册表中可能会看到这些文件夹:

HKEY_CLASSES_ROOT\Directory\shell\git_gui
HKEY_CLASSES_ROOT\Directory\shell\git_shell
HKEY_CLASSES_ROOT\LibraryFolder\background\shell\git_gui
HKEY_CLASSES_ROOT\LibraryFolder\background\shell\git_shell
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_gui
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\git_shell

进入每个文件夹并创建一个名为LegacyDisable的新字符串值,这将立即解决问题。如果您想恢复更改,只需删除该字符串。

以下是详细信息的图片: LegacyDisable


1
请在答案中包含截图,而不是链接,谢谢。 - DataSciRookie

0

首先,您需要清理注册表中不需要的上下文菜单条目,如“如何清理混乱的Windows上下文菜单”所述。
通常在:

HKEY_CLASSES_ROOT\Directory\shell
HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers

然后您需要确保使用便携式自解压缩存档安装Windows版GitPortableGit-2.15.0-64-bit.7z.exe
一旦在任何您想要的文件夹中提取,您可以将该文件夹添加到%PATH%中,这样您就可以在任何地方使用Git而无需任何额外的上下文菜单条目。


谢谢你的回答,但我想从我的电脑中删除git,上下文菜单只在某些情况下被清除,在文档文件夹中它仍然存在。你有这样的问题吗? - Dawid Dave Kosiński
@DawidDaveKosiński 不,我提供的链接也应该能够删除文档中的条目。此外,我只解压便携式版本,所以我从来没有看到任何上下文菜单。 - VonC
我稍后会尝试这个链接,因为现在我不在电脑旁边。 - Dawid Dave Kosiński

0

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