在《TortoiseGit 入门指南02:创建和克隆仓库》中我们讲到了 TortoiseGit 的一大特色:叠加图标。
叠加图标介绍
虽然之前已经描述过叠加图标,为了便于理解,这里再列出叠加图标的知识。
TortoiseGit 会给 工作区
中的文件和文件夹叠加图标(Icon Overlays
),叠加图标是一种可视化的提示系统,它通过在文件和文件夹的图标上添加额外的图形元素(即叠加),来显示这些文件或文件夹的 Git 状态。这样,用户可以直接在文件浏览器中看到哪些文件已经被提交,哪些文件还有未提交的更改,等等。图标反应的是这些文件和文件夹的当前状态。目前,共 9 种图标。
按照图中数字标出的顺序,其含义依次为:
normal
:正常状态,已经提交到版本库
并且没再做任何修改。assume-valid
:假定未修改状态。added
:已经添加到版本库的暂存区
。modified
:已修改。deleted
:从版本库中删除(工作区中仍存在)。ignored
:版本库忽略这些文件或文件夹。conflicted
:发生冲突。skip-worktree
:跳过工作树。non-versioned
:未跟踪且未忽略的文件或文件夹(尚未加入到版本控制库中)。
叠加图标没有显示
但是有很多使用者发现,在他们的电脑上,Git 仓库中并没有显示这些 叠加图标
,或者只显示叠加图标其中的一部分,这是什么原因?
通过查找资料发现,TortoiseGit 提供的叠加图标依赖于操作系统的支持,TortoiseGit 目前只能在 Windows 中使用,因此如果叠加图标不显示或者只显示其中一部分,那就说明 Windows 操作系统提供的支持出了问题。进一步发现, Windows 允许使用的叠加图标最多只有 15 个,而其中的 4 个还保留给 Windows 自己使用。因此,所有的其它应用只能使用剩余的 11 个。也就是说,所有使用叠加图标的应用,都要争夺这 11 个使用权,这些应用包括但不限于 TortoiseGit、360 安全卫士(在桌面显示有多少个应用需要升级 )、微云同步助手、OneDrive 等。那么,这些应用程序是怎么争夺 11 个叠加图标的使用权呢?
应用程序要使用叠加图标,必须向注册表中注册信息。所有要使用叠加图标的应用都会注册到HKEY_LOCAL_MACHINE–>SOFTWARE–>Microsoft–>Windows–>CurrentVersion–>Explorer–>ShellIconOverlayIdentifiers
。如果有很多应用程序要叠加图标,超过了 11 个,Windows 怎么取舍?扯淡的事情来了,注册表表项名称按字母排序,谁排序靠前,谁具有使用叠加图标的权利,排在 11 个之后的应用,Windows 直接忽略掉它们。
恢复叠加图标
这就导致了应用间的叠加图标权限争夺战,使用的方法相当的简单粗暴:给表项名称前面增加空格,空格是合法的表项名称,而且会让表项排在靠前的位置。
首先打开注册表编辑器,方法为:按下 Win + R
组合键,打开 运行
窗口。在运行窗口中输入 regedit
,然后点击 确定
,打开注册表编辑器。
然后在注册表编辑器中依次找到 HKEY_LOCAL_MACHINE–>SOFTWARE–>Microsoft–>Windows–>CurrentVersion–>Explorer–>ShellIconOverlayIdentifiers 表项,如下图所示:
从图中可以看出,我们的 TortoiseGit 就会在表项名称前增加 2 个空格,够阴险的吧,但架不住还有更阴险的。有些应用会增加 3 个、4 个或者更多的空格,所以如果你的 TortoiseGit 叠加图标不见了,只需要打开注册表,找到 HKEY_LOCAL_MACHINE–>SOFTWARE–>Microsoft–>Windows–>CurrentVersion–>Explorer–>ShellIconOverlayIdentifiers
表项, TortoiseGit 的叠加图标表项一共 9 个,让这 9 个表项排在最前面就可以了,方法可以是在表项名的最前面增加空格,足够多的空格。
读后有收获,资助博主养娃 - 千金难买知识,但可以买好多奶粉 (〃‘▽’〃)