TortoiseGit not showing icon overlays Git图标消失
TortoiseGit not showing icon overlays
https://tortoisegit.org/support/faq/#ovlnotall
Windows will only allow up to 11 icon overlay identifiers, arranged in alphanumeric order - if there are more than 11, these icons will not be displayed.
You can run the following command in a DOS prompt:
regedit /e c:\icons.txt HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
Then open the file C:\icons.txt
. Skip the first two lines, and if 1TortoiseNormal
and the other *Tortoise*
values are not in the top 11 values, their icon overlays will not be shown. The solution provided by @Chi Chan is just a simple way to make 1TortoiseNormal
rank higher when ordered among all the overlays, you can also rename the values by adding space(s) before 1TortoiseNormal
, i.e.,
" 1TortoiseNormal"
to make them rank higher.
update: for Windows 8, the limit of icon overlays is 15.
The overlay icons appear, but not all of them!
You may find that not all of these icons are used on your system. This is because the number of overlays allowed by Windows is limited to 15. Windows uses 4 of those, and the remaining 11 can be used by other applications. And if you have OneDrive installed, that uses another 5 slots. If you then have another cloud drive tool installed, those slots can be used up. TortoiseGit and TortoiseSVN try to be a "Good Citizen ™" and limit its use of overlays to give other apps a chance.
- Normal, Modified and Conflicted are always loaded and visible (if possible!).
- Deleted is loaded if possible, but falls back to Modified if there are not enough slots.
- ReadOnly is loaded if possible, but falls back to Normal if there are not enough slots.
- Locked is only loaded if there are less than 13 overlays already loaded. It falls back to Normal if there are not enough slots.
- Added is only loaded if there are less than 14 overlays already loaded. It falls back to Modified if there are not enough slots.
You can check which other apps are using overlays by using Regedit to look at HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
(and also HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
on 64-bit Windows for 32-bit applications).
Other apps which are known to use overlays:
- Windows itself. Vista and Win7 use more than XP.
- SkyDrive
- OneDrive
- GDrive
- Mega
- Dropbox
- OwnCloud
- many others…
If there are too many overlay handlers installed and TortoiseGit does not show any overlays, you can try to delete some of the installed handlers from the registry. But be careful when editing the registry!
The overlay handler are loaded by the order of the ASCII code. Thus, you need to make sure the Tortoise* overlay handler has a high precedence to be honored. Deletion of other handlers is sometimes a bit tricky. But you can also try to prefix the Tortoise* entries with spaces and/or double quotes (") - in general there seems to be a real war going on who has the most spaces.
Please also see issue #692 and issue #2548 and this answer on StackOverflow for more user reports.
TortoiseGit Icon Overlays not showing
From https://tortoisegit.org/support/faq/#ovlnotall:
The number of overlays allowed by Windows is limited to 15. Windows uses 4 of those, and the remaining 11 can be used by other applications. And if you have OneDrive installed, that uses another 5 slots. If you then have another cloud drive tool installed, those slots can be used up. TortoiseGit and TortoiseSVN try to be a "Good Citizen ™" and limit its use of overlays to give other apps a chance.
You can check which other apps are using overlays by using Regedit to look at
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers
If there are too many overlay handlers installed and TortoiseGit does not show any overlays, you can try to delete some of the installed handlers from the registry. But be careful when editing the registry!
Deletion is sometimes a bit tricky. You can also try to prefix the Tortoise* entries with spaces and/or double quotes (").
The overlay handler are loaded by the order of the ASCII code. Thus you need to make sure the Tortoise* overlay handler has a high precedence to be honored. This can be achieved by prepending spaces (as seen in the screenshot there is a real war going on who has the most spaces).