推送后克隆 repo 时无法签出 git 子模块路径

Unable to checkout git submodule path when cloning repo after push

推送主模块和子模块后,我尝试从远程将存储库克隆到计算机中的新文件夹。

克隆master成功。

但是当我开始克隆子模块时,它显示一条错误消息

Unable to checkout git submodule path

失败了。

有什么办法可以解决吗?

以我为例,虽然无法克隆,但我仍然可以使用现有的存储库来拉取,所以我先备份最新的条件文件,然后再拉取,

pull后发现Log/History显示master之前push成功了,但是submodule的history还在过去的那个日期,说明刚才的submodule push没有成功,并且最新的修改都丢失了。 (我之前有备份所以不会丢失那么多)

我觉得另外一个线索就是我的push顺序好像不对,我是先push master而不是push submodule,然后再push submodule。

(问题的关键点可能是文件名.gitmodules的异常变化但我当时没有解决问题,而是使用下面的方式)

虽然这可能不是一个好主意,但我只是使用备份文件代码和copy/paste到存储库中的文件,并通过这种方式将存储库中的文件恢复到最新状态,

然后我再次推送,首先提交并推送子模块,然后提交并推送带有子模块的主模块,

再次尝试克隆,问题消失,成功。