我有一个大型VS2017解决方案,该解决方案存储在GitHub上。在我的存储库的本地工作副本中,有几个标记为?的文件。图标覆盖,指示它们是非版本文件。但是,这些文件在存储库中并且是最新的。如果我提交对其他文件的更改,则这些文件不会显示在“没有版本控制”列表中,或者如果我从GitHub创建存储库的克隆,则这些文件将带有适当的图标覆盖。
有什么想法为什么这些文件在一个本地存储库而不是另一个本地存储库中显示为“未版本控制”?
答案 0 :(得分:2)
请确保文件系统上文件名的大小写与存储库中的大小写匹配。
背景
即使Windows忽略了路径中的大小写,Git也不会(完全)-即使启用core.ignorecase
。 git status
确实确实忽略了这种情况,但是,如果您尝试将日志放在具有不同大小写的文件上,则日志将为空。
因此,在TortoiseGit 2.4.0中,图标叠加层区分大小写。因此,如果覆盖图标显示文件已被版本控制,则日志将不会为空,并且如果文件显示为未版本控制,则表明存在某种好奇。
如何修复
重命名文件系统中的文件(某些应用程序可能会删除并重新创建具有不同大小写的文件),或使用TortoiseGit重命名功能将存储库中的大小写固定。
自TortoiseGit 2.5.0起,您可以通过启用高级选项OverlaysCaseSensitive
(请参阅issue #2980),将TortoiseGit配置为在再次计算覆盖图标时忽略大小写。