TortoiseGit没有显示图标叠加

时间:2014-08-06 09:03:37

标签: git tortoisegit

我现在已经用TortoiseGit差不多整整一年了。直到昨天我遇到问题时,它一直很好用。我正在删除一个文件夹,当时Windows资源管理器崩溃了(它挂在"发现项目")超过一个小时,然后我重新启动了系统。

从那时起(并且我确定所描述的事件是否与它有关),TortoiseGit已停止在资源管理器中显示图标叠加层。但是,这种行为与其他在此处发布问题的人不同,因为:

  

在所有程序的open file对话框中,图标仍然存在(!)。

以下列出了我尝试过的事情:

  1. 我更改了TortoiseGit设置以显示不同的图标。
  2. 重新安装TortoiseGit(卸载,重启,安装,重启)。
  3. 我删除了以" Tortoise"开头的所有图标叠加层在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer \ShellIconOverlayIdentifiers中,然后卸载TortoiseGit,重新启动计算机并重新安装TortoiseGit。

  4. 修改

    我尝试在计算机上创建一个新用户,新用户的图标叠加工作正常。我现在更加困惑。

    到目前为止没有任何帮助。有什么想法吗?

17 个答案:

答案 0 :(得分:115)

我遇到了同样的问题,我按照论坛的说明开始工作。我做的是这个(复制):

  

我找到解决方案:)   在""

下使用HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers所有陆龟钥匙包裹      1TortoiseNormal等等的

......   我理解了这个问题,看到Dropbox并且它的工作原理是Dropbox的标志("")而不是乌龟。   所以我添加了标志,关闭explorer.exe并跳转它很好:)

所以我所做的是将密钥1TortioiseNormal重命名为"1TortioiseNormal"等。我不知道为什么将它包装在双引号中会使其再次起作用。

原始论坛已消失,但评论中提供了a good summary

答案 1 :(得分:85)

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。

答案 2 :(得分:34)

Windows 10解决方案步骤;

  1. 打开注册表
  2. 路径:

      

    HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的Windows \ CurrentVersion \ Explorer中\ ShellIconOverlayIdentifiers

    1. 删除/删除所有SkyDrive / OneDrive密钥。如果在尝试删除密钥时收到错误,您可能需要逐个获取密钥的所有权并为用户提供完全控制权。

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

    3. 现在可以看到所有git / svn叠加图标!

答案 3 :(得分:21)

在坚持之前,请尝试重新启动!它对我有用;)

答案 4 :(得分:13)

只需将一个空格(或更多,如果需要)添加到此第一个地址名称加入此地址:

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

例如:

"1TortoiseNormal"

应改为:

" 1TortoiseNormal"

系统reboot图标显示后。

答案 5 :(得分:3)

我首先在Windows 10 64位计算机上安装了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 issue #692 on GitLab中提出了我曾经修复过的问题:

  
      
  • 打开regedit.exe      
        
    • 转到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer
    •   
    • 添加新的字符串值" Max Cached Icons"价值" 2000"
    •   
  •   
     

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

答案 6 :(得分:3)

我也让我的TortoiseGIT shell图标突然显示,我不记得究竟是什么导致了它,但我发现这并尝试将注册表内容改为1TortioiseNormal为“1TortioiseNormal”等等。无论如何,这可能是一件好事,但图标叠加仍然无法正常工作。

我太忙了,无法回答“重新启动计算机”,对我说的是“某些服务流程需要重新启动,但你永远无法找到它,所以只需重启”。罗。

我也使用TortoiseSVN,那些图标叠加仍在为我工作。我查看了任务管理器的进程选项卡,看到我有一个名为TSVNCache.exe的东西正在运行。没有任何类似git的迹象,所以我突然想到了应用程序选项卡并点击“新任务”,输入了TGITCache.exe并确定该进程已启动。从那里返回进程,杀死explorer.exe,然后返回应用程序 - >再次启动新任务并启动explorer.exe。

当我的TortoiseGIT图标叠加已经退出时,这对我有用了两次,所以,也许这对其他人有效。

答案 7 :(得分:3)

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

答案 8 :(得分:2)

对我有用的是从我的计算机上卸载Google云端硬盘。不知道为什么。

答案 9 :(得分:1)

领先空间的问题在于,每次重新启动时,Dropbox都会为其注册表添加另一个空间,并且总是领先于您。

所以我已安排在post(由Christoph Zwerschke)发现的python脚本,以便每次计算机启动时执行。此后,您还必须重新启动资源管理器。

.bat看起来像:

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

和python脚本:

#/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')

答案 10 :(得分:1)

Windows 10对我有用的是

  1. 卸载TortoiseGit
  2. 清理文件夹并注册
  3. 再次安装
  4. 重新启动计算机
  5. 即使没有看到红色图标也随机提交

答案 11 :(得分:1)

我同意Chi Chan,我想补充一下作为补充答案。

这是Dropbox Explorer图标。这是一个删除它们的注册表脚本。把它保存在某处,因为它们会回来!

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

删除Dropbox Explorer Icons.reg

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]

答案 12 :(得分:1)

好吧,我想我错过了明显的步骤...

在TortoiseGit设置>图标叠加中:

Make sure to add your projects folder to the "Include Paths" box.

答案 13 :(得分:1)

很久以前,我试图通过编辑注册表来解决图标覆盖问题:HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiersHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers,但是每次更新OneDrive或Dropbox时,它们都会为其注册表添加更多空间。但是,问题解决了:

选择TortoiseGit设置>图标覆盖>(状态缓存)Shell Extended enter image description here

目前,OneDrive和Dropbox在ShellIconOverlayIdentifiers列表的顶部,但是所有Tortoise图标覆盖均正确显示

答案 14 :(得分:0)

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

enter image description here

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

我希望可能对其他任何人有用。

答案 15 :(得分:0)

转到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers”

在所有 Tortoise*** 文件夹前加上 5 个空格(空格键) - 您可能会发现 Tortoise1*** 到 Tortoise9*** 文件夹

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

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

答案 16 :(得分:0)

  1. 导出的注册表文件,在文本编辑器中打开并删除了前导空格。在 Tortoise 前面添加了感叹号 (!)。保存为 Preferred-Shell-Icon-Overlay-Settings.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"

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}"