为什么git推送在以前的子存储库上不起作用?

为什么git推送在以前的子存储库上不起作用?,git,push,gitlab,pull,Git,Push,Gitlab,Pull,我有一个名为project的项目文件夹。这是用git跟踪的。 我有一个子文件夹,名为SubProject。git一直在跟踪这一点,但此后我删除了子项目中的.git文件 现在,当我推到gitlab时,gitlab仍然将子项目显示为它自己的git存储库。当我向下拉到另一台服务器时,除了子项目只是一个空文件夹外,其他一切看起来都正常 发生了什么?您可能需要1)执行git子模块deinit子项目,2)检查.gitmodules文件并手动删除子项目的条目,3)git添加子项目文件。问题是您的主项目仍然认为

我有一个名为
project
的项目文件夹。这是用git跟踪的。 我有一个子文件夹,名为
SubProject
。git一直在跟踪这一点,但此后我删除了
子项目
中的.git文件

现在,当我推到gitlab时,gitlab仍然将
子项目
显示为它自己的git存储库。当我向下拉到另一台服务器时,除了
子项目
只是一个空文件夹外,其他一切看起来都正常


发生了什么?

您可能需要1)执行git子模块deinit子项目,2)检查.gitmodules文件并手动删除子项目的条目,3)git添加子项目文件。问题是您的主项目仍然认为子项目是子模块,即使您删除了子项目中的.git目录。当我克隆它时,我找不到任何.gitmodule文件夹D:.gitmodule是否可以通过推拉?除了在.gitmodules文件夹中,是否有其他地方git会指示“此项目包含子模块”?p、 所以很难说到底发生了什么,但是是的,.gitmodules在推拉操作中幸存了下来,应该成为主要项目回购的一部分。如果gitlab将子项目显示为一个单独的git存储库,那么它将注册为一个子模块……您可能会知道您是否深入到了.git文件夹中,但我不确定您会在哪里查找。在将子项目文件夹设置为git存储库之前,您可能最初将其作为空文件夹进行跟踪。如果你想添加文件回来,你应该能够做到强制添加目录。。。