TortoiseGit 没有显示图标覆盖

我已经使用 TortoiseGit几乎整整一年了。直到昨天我遇到一个问题之前,它一直对我很有用。我正在删除一个文件夹时,文件资源管理器突然崩溃了(它挂在“发现项目”上超过一个小时) ,然后我重新启动了系统。

从那时起(我是 没有,我确信所描述的事件是否与此有关) ,TortoiseGit 已经停止在资源管理器中显示图标叠加。然而,这种行为与其他在这里提出问题的人不同,因为:

open file的所有节目对话中,图标仍然存在(!)。

下面是我尝试过的一些方法:

  1. 我更改了 TortoiseGit 设置以显示不同的图标。
  2. 重新安装 TortoiseGit (卸载,重新启动,安装,重新启动)。
  3. 我删除了 < code > HKEY _ LOCAL _ MACHINE SOFTWARE Microsoft Windows CurrentVersion Explorer 中以“ Tortoise”开头的所有图标重叠 然后卸载 TortoiseGit,重新启动计算机并重新安装 TortoiseGit

编辑:

我试图在我的电脑上创建一个新用户,新用户的图标覆盖工作正常。我现在更困惑了。

目前为止没什么帮助,有什么想法吗?

118823 次浏览

我也有同样的问题,我按照一个论坛的指示让它工作。我所做的就是这样(复制) :

我找到了解决办法:) 包装与 ""下所有乌龟键 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

1TortoiseNormal等等。 我理解这个问题,看到 Dropbox 和它的工作注册有标志("")的 Dropbox,但不是乌龟。 因此,我添加了标志,close Explorer. exe 和 hop,这很好:)

我所做的就是把键 1TortoiseNormal重命名为 "1TortoiseNormal"等等。我不知道为什么把它包在双引号里还能用。请注意,更改生效需要重新启动文件资源管理器。

最初的论坛已经没有了,但是 很好的总结在评论中提供了。

在发疯之前,试着重启一下! 对我来说很管用;)

Windows 将只允许最多11个图标覆盖标识符,按字母数字顺序排列-如果有超过11个,这些图标将不会显示。

您可以在 DOS 提示符下运行以下命令:

regedit /e c:\icons.txt HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

然后打开文件 C:\icons.txt。跳过前两行,如果 1TortoiseNormal和其他 *Tortoise*值不在前11个值中,则不会显示它们的图标覆盖。@ Chi Chan提供的解决方案只是一个简单的方法,使得 1TortoiseNormal在所有覆盖图中排序时排名更高,您也可以通过在 1TortoiseNormal之前添加空格来重命名值,即,

" 1TortoiseNormal"

让他们排名更高。

更新: 对于 Windows 8,图标覆盖的限制是15。

在卸载 TortoiseSVN 之后,我今天遇到了同样的问题。我重新启动,但仍然没有运气,所以我只是进入 控制面板,卸载程序和在 TortoiseGit 项目我选择’修复’和一切都恢复正常。我怀疑所有的 Tortoise 系列应用程序都有一些共享的注册表项或其他东西。

我也有我的 TortoiseGIT 的 shell 图标突然停止显示,我不记得具体是什么导致它,但我发现了这一点,并尝试注册表的东西改变1TortioiseNormal 为“1TortioiseNormal”等。这可能是一件好事,无论做什么,但图标覆盖仍然没有工作。

我太忙了,没时间回答“重新启动计算机”这个笼统的答案,这对我来说意味着“一些服务进程需要重新启动,但是你永远找不到它,所以只要重新启动就行了。”没有。

我还使用 TortoiseSVN,那些图标覆盖图仍然对我有效。我查看了任务管理器的进程选项卡,发现运行了一个名为 TSVNCache.exe 的程序。没有迹象表明 git 有任何类似的东西,所以我心血来潮,走到应用程序选项卡,点击“ New Task”,输入 TGITCache.exe,果然进程启动了。然后返回进程,关闭 Explorer.exe,然后返回应用程序-> New Task,再次启动 Explorer.exe。

当我的 TortoiseGIT 图标覆盖已经退出的时候,这对我已经有两次效果了,所以,也许对其他人也有效果。

Windows10解决方案步骤;

  1. 打开 regedit

路径:

MicrosoftWindowsCurrentVersion 资源管理器 ShellIconOverlayIdentifier

  1. 删除所有 SkyDrive/OneDrive 密钥。如果在尝试删除密钥时收到错误,您可能需要一个接一个地获得密钥的所有权,并给予用户完全的控制权。

  2. 按下 Ctrl + Shift + Esc 并重新启动“文件资源管理器”(可选择重新启动计算机)

  3. 所有 git/svn 覆盖图标现在可见!

对我起作用的是从我的电脑卸载谷歌驱动器。还不知道为什么。

只需添加一个空格(或更多,如果需要)的第一名龟选项到这个 regedit 地址:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

例如:

"1TortoiseNormal"

应改为:

" 1TortoiseNormal"

系统 reboot图标正确显示后。

我首先在我的 Windows 1064位机器上安装了 TortoiseSVN (1.9.5)和 msysgit (2.11.0) ,TortoiseSVN 图标显示良好。

当我在这两个图标之后安装 TortoiseGit (2.3.0.0)时,图标不会显示。

我检查了 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers,一切看起来都很好。乌龟图标在前10名。

我过去修复的是在 TortoiseGit 第692期 GitLab中提出的:

  • 打开 regedit.exe
    • 转到 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
    • 添加值为“2000”的新字符串值“ Max 缓存图标”

关闭/重新启动资源管理器和图标显示!

前导空格的问题在于,每次重新启动时,Dropbox 都会向其注册表添加另一个空格,并且总是比您快一步。

因此,我安排了一个在 邮寄上找到的 Python 脚本(由 Christoph Zwerschke 编写) ,以便在计算机每次引导时执行。在此之后,您还必须重新启动资源管理器。

这个. bat 看起来像:

python iconOverlayFixer.py
taskkill /f /im explorer.exe
start explorer.exe

还有蟒蛇剧本:

#/usr/bin/python3


import os
import winreg as reg


# names of all overlay icons that shall be boosted:


boost = """
Tortoise1Normal
Tortoise2Modified
Tortoise3Conflict
Tortoise4Locked
Tortoise5ReadOnly
Tortoise6Deleted
Tortoise7Added
Tortoise8Ignored
Tortoise9Unversioned
"""


boost = set(boost.split())


with reg.OpenKey(reg.HKEY_LOCAL_MACHINE,
r'SOFTWARE\Microsoft\Windows\CurrentVersion'
r'\Explorer\ShellIconOverlayIdentifiers') as base:


names = set()
renames = []
i = 0
while True:
try:
name = reg.EnumKey(base, i)
except OSError:
break
core = name.strip()
if core in names:
print('Delete', repr(core))
reg.DeleteKey(base, name)
else:
names.add(core)
if core in boost:
core = ' ' + core
if core != name:
renames.append((name, core))
i += 1


if renames:
for old_name, new_name in renames:
print('Rename', repr(old_name), 'to', repr(new_name))
value = reg.QueryValue(base, old_name)
reg.CreateKey(base, new_name)
reg.SetValue(base, new_name, reg.REG_SZ, value)
reg.DeleteKey(base, old_name)
else:
print('Nothing to rename')

对我来说,Windows10的成功之处在于

  1. 卸载 TortoiseGit
  2. 清洗文件夹和寄存器
  3. 再次安装
  4. 重启电脑
  5. 即使没有看到红色图标,也可以进行随机提交

我同意陈志灿的观点,我想补充一下这个问题。

这是 Dropbox Explorer 图标。这里有一个注册表脚本来删除它们。保存到某个地方,因为它们会回来的!

注意,这些值也会随时变化。目前,他们在“ DropboxExtXX”之前有3个空格,之前他们只有一个。

删除 Dropbox Explorer 图标

Windows Registry Editor Version 5.00


[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt01]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt02]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt03]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt04]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt05]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt06]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt07]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt08]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt09]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\   DropboxExt10]

我注意到覆盖是由 TortoiseSVN shell 扩展管理的。这可以使用 Nirsoft ShellEx View进行验证。当我禁用 TortoiseSVN 扩展时,覆盖图标将消失。当我重新启用 TortoiseSVN (下面屏幕截图中的蓝线)时,它们出现了

enter image description here

在 ShellEx 视图中,选择 Options > Filter By Extension Type。在对话框中选择 System并循环 OK。然后应该使用 TortoiseGit 和 TortoiseSVN 扩展。确保启用了所有 TortoiseSVN 条目。

我希望这对其他人也有用。

转到“ HKEY _ LOCAL _ MACHINE SOFTWARE Microsoft Windows CurrentVersion Explorer ShellIconOverlayIdentifier”

前缀所有的乌龟 * * * 文件夹与5个白色空间(空格)-您可能会发现乌龟1 * * * 到乌龟9 * * * 文件夹

关闭注册表窗口并重新启动电脑。

对我有用,我希望对其他人也有用。

  1. 导出注册表文件,在文本编辑器中打开并删除前导空格。加上惊叹号(!)到乌龟面前。保存为首选-外壳-图标-覆盖-设置。Reg
  2. 写入批处理文件以删除密钥和子密钥,然后从 * . reg 文件还原。
  3. 可以在任何时候运行,放置在启动文件夹或写入 Powershell 和放置在任务调度程序运行时启动。

批处理文件:

REG DELETE HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers /F
TIMEOUT 1 > NUL
REG IMPORT "H:\GIT\Preferred-Shell-Icon-Overlay-Settings.reg"

注册档案:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\!Tortoise8Ignored]
@="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx}"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\GoogleDriveSynced]
@="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx}"


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\DropboxExt01]
@="{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx}"

打开 regedit

导航到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers\

你会看到这样的东西:

enter image description here

顺序是很重要的,在上面的例子中,Dropbox高于 Tortoise,这是导致这个问题的原因。

为了解决这个问题,我给 Tortoise增加了一个太空包机。你可以做任何你喜欢的事,把它移到顶端。把 Tortoise1Normal改成 Tortoise1Normal。(当我看到 Tortoise1Normal有很多空格时,我感到很惊讶。在 tortoises的家伙认为,这些许多空间使他们在注册表的顶部! !而 dropbox的家伙击败了他们,因为 DropBox Tortoise1Normal有更高的秩序。)

registry将是这样的: (您需要关闭并重新打开 regiedit或按 F5查看新的排序)

enter image description here


最后 End Taskexplorer和重新运行它。

在我的情况下,以下工作- 进入 TortoiseGit-> 设置-> 图标覆盖-> 检查选项-驱动器 A 和 B 然后叠加图标出现,而不重新启动电脑

注意: 我也卸载了一个驱动器,但我不认为这对解决方案有任何贡献,你也可以尝试一下。

对我来说(使用 Windows10) ,在安装了 tortoise git之后,在 TaskManager 中重新启动文件资源管理器就解决了这个问题。