Git 子模块不会删除

Git Submodule Won't Delete

我在将之前删除的子模块添加回我的项目时遇到问题。当我尝试添加子模块时,一切正常,直到我推送我的更改,git 抱怨:

remote: Git submodules detected, installing:
remote: No submodule mapping found in .gitmodules for path 'ng/css/lib/submodule-name' 

请记住,这次我将子模块安装到新位置。所以在上面的代码片段中,错误的路径是来自先前的子模块安装而不是新的。 git 在哪里保留这个旧路径信息?


初始子模块添加

我添加了一个 git 子模块

git submodule add [github link]

当我在以下目录中时:

ng/css/lib

我最终按照 here 的描述删除了子模块。如果你不想读我实际上是这样做的:

rm .gitmodules

删除了 .git/config

中的子模块条目
git rm --cached ng/css/lib/submodule-name

多次成功推送后我想将子模块添加回项目中。我决定它会像以前的安装一样简单。

git submodule add [github link] ng/global

但事实并非如此,我收到 "No submodule mapping found" 错误并且我不知道 git 如何或在何处保留此信息。有没有办法永久清除子模块安装?

你的命令没有删除.git/modules/ng/css/lib/submodule-name

  • 请先删除该子文件夹(.git repo 文件夹内部),
  • 确保您的第二个 git submodule add 没有重新引入 .gitmodules(如果是,请先将其删除)
  • 然后再次尝试添加您的子模块。