TortoiseGit没有显示图标叠加

问题描述 投票:119回答:14

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

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

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

这是我尝试的一系列事项:

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

编辑:

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

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

git tortoisegit
14个回答
118
投票

我有同样的问题,我按照论坛的指示开始工作。我做的是这个(复制):

我找到了解决方案:)在""下用HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers包裹所有龟甲

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

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

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


1
投票

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

因此,我已安排在此HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer(由Christoph Zwerschke)上找到的python脚本,以便每次计算机启动时执行。此后您还必须重新启动资源管理器。

.bat看起来像:

post

和python脚本:

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

1
投票

Windows 10对我有用的是

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

1
投票

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

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

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

Remove Dropbox Explorer Icons.reg

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

1
投票

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

在TortoiseGit设置>图标叠加:

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]


1
投票

很久以前,我试图通过编辑注册表来解决图标覆盖问题:Make sure to add your projects folder to the "Include Paths" box.HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers,但每次更新OneDrive或Dropbox时,它们都会为其注册表添加更多空间。但问题解决了:

选择TortoiseGit设置>图标覆盖>(状态缓存)Shell扩展HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers

目前,OneDrive和Dropbox位于ShellIconOverlayIdentifiers列表的顶部,但所有Tortoise图标叠加都正确显示


86
投票

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。


35
投票

Windows 10解决方案步骤;

  1. 打开注册表

路径:

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

  1. 删除/删除所有SkyDrive / OneDrive密钥。如果在尝试删除密钥时收到错误,您可能需要逐个获取密钥的所有权并为用户提供完全控制权。
  2. 按Ctrl + Shift + Esc并重新启动“Windows资源管理器”(可选择重新启动计算机)
  3. 现在可以看到所有git / svn叠加图标!

22
投票

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


13
投票

只需在此regedit addersses中添加一个Space(或更多,如果需要)到第一个Tortoise选项名称:

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

例如:

"1TortoiseNormal"

应改为:

" 1TortoiseNormal"

在系统qazxsw poi图标显示之后。


3
投票

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


3
投票

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

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

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

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


3
投票

我在Windows 10 64位机器上首先安装了TortoiseSVN(1.9.5)和msysgit(2.11.0)。 TortoiseSVN图标显示正常。

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

我检查了reboot,一切都很好看。乌龟图标排在前10名。

我曾经在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers提出修复:

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


2
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.