如何恢复 Windows shell 中指示 git 状态的图标?

How do I bring back the icons that indicate git status in the Windows shell?

在 Windows 资源管理器中,已更新的存储库的绿色勾选图标和未更新的存储库的红色标记不再显示。

如何将它们取回?

请看附图。例如我在名为 Temp.

的存储库中确实有一些未跟踪的文件

但是,none 个文件夹具有显示 git 存储库状态的绿色或红色图标。

他们以前在那里。他们几周前突然失踪了。

我使用的是 64 位 Windows 7 家庭高级版。

@magicandre1981 在这个问题的评论中提供了解决方案。这是我尝试解释解决方案的尝试。

似乎 Tortoise Git、Dropbox、Google Drive 等应用程序在 Windows 资源管理器文件和文件夹前显示不同的图标,方法是创建一个覆盖在 Windows 绘制的常规图标之上。显然,应用程序注册了这些叠加层,并且 Windows 在完成文件系统对象的基本绘制后重新绘制每个叠加层。

但是,Windows 对其将接受的叠加数量施加了限制。任意数量的应用程序可以使用 Windows 注册任意数量的覆盖。但是 Windows 只会选择注册的前 15 个叠加层和 re-draw 它们。其余的将被忽略。

Windows 注册表维护注册覆盖的顺序和数量。具体来说,键 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers 具有如下图所示的列表。

也可以在 this web page 上找到对此的解释。

可以看出 Dropbox 和 Google Drive 总共已经注册了超过 15 个叠加层,这就是为什么 Windows 从来没有机会兑现 Tortoise 注册的叠加层 Git 在我的机器上。

我卸载了 Dropbox 和 Google Drive,因为我没有经常使用它们的同步功能。

我没有看到任何变化,所以我重新启动了我的机器。我仍然没有看到任何变化,但在重新启动机器大约 30 分钟后,图标恢复正常,即我开始看到我的存储库的 Tortoise git 状态很好。

我认为问题与 Windows 中的路径有关。如果将克隆的存储库放在众所周知的(路径中的目录)目录中,则会显示绿色复选标记。这就是我能够解决这个问题的方式。但是这个问题后来又回来了。我们最终重新安装了 TortoiseGit