git 阶段中的子模块 - 如何删除?

git submodule in stage - how to remove?

我的 gitlab 网络界面中有一些带有 "archive" 标签的项目:

问题是我的本地仓库在这个目录中有真实文件:

我无法将更改从此目录推送到远程服务器。我试图从远程服务器删除 yii2-rbac:

git rm --cached path/to/yii2-rbac

但是没有成功,下次推送后,同名的神秘文件'yii2-rbac'又出现了...

我该如何解决?

更新:我已经考虑了评论并意识到我处理子模块的内容:

git ls-files --stage | grep 0000

160000 3fc4af92c20ca2bf97bf01a50819565b5a6fe621 0   path/to/yii2-migration-utility
160000 c6d315a3c9652b3b1ced19fe105f65e6e09f375b 0   path/to/yii2-rbac

一个问题:如何删除这些子模块并像往常一样开始使用 path/to/yii2-rbac 目录?

我找到了适合我的解决方案。在主 git 回购中:

rm -rf path/to/child/.git

将从目录中删除 "submodule" 状态(但所有文件仍然存在)。在 GitLab 界面中,此目录现在看起来像普通文件夹: