该图标及其旁边的哈希ID表示你所拥有的根本不是文件。(而且,Git不存储文件夹,因此也不是文件夹。)它是Git所谓的gitlink。gitlink是子模块的内部组件,它告诉超级项目哪个提交要退出子模块。
子模块本身就是另一个Git存储库。这意味着克隆超级项目后,你还必须也git clone
有子模块存储库。让Git自己执行此操作的指令存储在名为的提交文件中.gitmodules
。如果.gitmodules
文件丢失(如你的屏幕快照所示),如果文件已完成,则Git本身无法git clone
为你提供子模块。我喜欢称其为损坏的子模块,有时也称为半断定的子模块。要修复它,你必须提供另一半的屁股:克隆适当的Git存储库。(然后将说明也放入.gitmodules
文件中,以便下次完全使用它。)
如果你不需要子模块,请不要使用gitlink。要使Git不使用gitlink,请确保你不尝试将存储库添加到存储库:Git实际上无法做到这一点,因此它改为使用gitlink。